1

我有一个工具,它使用 dumpbin /symbols 的输出对我们的 C/C++ 库进行一些依赖性分析。当我们使用 VS 6.0 编译库时,dumpbin COFF SYMBOL TABLE 包含如下条目

000 00000008 DEBUG  notype       Filename     | .file
    x:\mydir\mysource.c

让我得到源和定义/使用的符号之间的关系,这对我的工具来说是必不可少的。当我们用 VS 2005 编译时,这些条目都不见了。当我用十六进制编辑器查看库时,似乎二进制文件中根本没有文件名信息,所以这似乎不是一个愚蠢的问题,而是与编译有关。因此,我正在寻找一种在使用 VS 2005 编译时将文件名条目恢复到我的库中的方法。


谢谢斯科特。

调试帮助 API 看起来很有趣,但我还没有弄清楚如何获得我能够从 COFF 中提取的相同信息,即。对于每个符号

  1. 定义它的源文件
  2. 以及使用符号的源文件列表

对此有任何指示吗?

4

1 回答 1

2

VS 2005 不会发出 COFF 调试信息。Microsoft 已弃用它以支持 PDB。这意味着他们不再生产它,最终 link.exe 将停止使用它。

您可以使用调试帮助 API 读取 PDB 信息。

http://msdn.microsoft.com/en-us/library/ms679309(VS.85).aspx

于 2010-03-14T02:33:54.050 回答