Rust 在 Windows 上 Release 编译彻底去除调试符号信息
本文介绍如何让 Rust 在以 Windows 为目标平台的 Release 编译的基础上,通过配置链接参数进一步彻底去除多余的调试符号信息,针对的工具链包括 GNU 和 MSVC。
去除额外的符号信息能减小最终生成程序的体积。如果是在 Windows 上使用 GNU 工具链,那么这一点会很明显。
一个 Rust 的 Hello World 程序,在 Windows 下,使用 GNU 工具链,即便是 Release 编译,最后生成的程序体积也有 3 MB 多。其中调试符号信息占了大部分体积;如果去除,程序体积可以下降至 600+ KB。好在如果使用的是 MSVC 工具链编译,调试符号会另存于 .pdb
文件,程序本体没有这样的体积问题。
在 Linux 下,如果编译时带上了符号信息,编译完还可以用 strip
工具解决这个问题,但是 Windows 下呢?
去除符号信息可以减小 Rust 程序体积,但本文不打算探讨减小 Rust 程序体积的各种技巧,本文只打算纯粹地介绍在 Windows 目标平台上编译 Rust 程序时如何去除额外的调试符号信息。
读者如果想进...
CLion 远程调试控制台`pretty printers setup`错误
背景:CLion 项目的 Toolchains 配置为 Remote Host,即远程编译、远程运行、远程调试。(CLion 2019.2.x)
在运行调试时,调试控制台输出提示:
Error during pretty printers setup: Error while executing Python code.
Some features and performance optimizations will not be available.
虽然不是什么关键性问题...
----
根据
https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000098784-Python-error-when-debugging
为 CLion debugger 模块启用调试级别的日志记录具体看看错误内容。
关键词:#com.jetbrains.cidr.execution.debugger
(详见上方链接)
得到相关日志如下:
DEBUG - brains.cidr.exe...