在 Visual Studio 中制作可私有符号化的发布版本的正确方法是什么?

What's the correct way to make a privately symbolicatable release build in Visual Studio?

在 Visual Studio 中制作私有符号化版本的正确配置是什么?我想生成并存储一个 PDB 文件,它允许我对构建的可执行文件的故障转储进行符号化,但要避免在可执行文件本身中嵌入调试信息,这将允许外部用户观察符号,例如函数和变量名称,而无需PDB.

我习惯了 DWARF 调试格式,它既可以嵌入到可执行文件中,也可以导出到单独的 dSYM 文件中,这似乎与 PDB 大致相当;我不确定 Visual Studio 是否具有与 ever/sometimes 类似的选项,是否在可执行文件中类似地嵌入调试信息,如果有,我需要打开哪些配置选项以确保发布版本不嵌入此信息。

/Z7, /Zi, /ZI (Debug Information Format) 编译器选项允许您

select the type of debugging information created for your program and whether this information is kept in object (.obj) files or in a program database (PDB).

/Zi/ZI 都将调试信息存储在程序数据库中。 None的信息将被编译成最终的可执行映像。

由于您计划使用调试信息来分析(大概)发布版本的崩溃转储,因此请确保 /Zo (Enhance Optimized Debugging) 编译器选项也已启用。