我在这里读到一些 PE 文件将调试信息嵌入到 PE 文件中。这仅适用于较旧的 PE 文件吗?
假设所有 Visual Studio 编译的 PE 文件都在外部 PDB 文件中包含所有调试信息(如果有),即不包含除 PDB 文件路径之外的调试信息,是否安全?
我在这里读到一些 PE 文件将调试信息嵌入到 PE 文件中。这仅适用于较旧的 PE 文件吗?
假设所有 Visual Studio 编译的 PE 文件都在外部 PDB 文件中包含所有调试信息(如果有),即不包含除 PDB 文件路径之外的调试信息,是否安全?
旧版本的 link.exe 支持/debugtype使用这些选项的参数:
/debugtype:coff
use COFF format
/debugtype:cv
use CodeView or Program Database format (depends on /pdb option)
/debugtype:both
use both COFF and CodeView/Program Database formats
根据 Visual Studio 2008链接器的 MSDN 文档,该选项不再可用;并且/debug开关的信息指出“无法创建包含调试信息的 .exe 或 .dll。调试信息始终放置在 .pdb 文件中。”
因此,过去十年使用 Microsoft 工具构建的任何东西都不会嵌入符号信息。