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 程序时如何去除额外的调试符号信息

读者如果想进...

阅读全文>>

6511 次浏览 1 条评论 标签:Windows debug Rust strip symbol gnu msvc

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...

阅读全文>>

Ɣ回顶部