0

尝试使用 VSPerfCmd(VS2010 分析器)以及 Intel VTune Amplifier XE 2013 进行分析:对于 .vsp 文件中的 VsPerfCmd,可以获得一些结果。但是,profer 没有选择 pdb。应用程序的某些部分没有可用的代码。

这是否已经发生在您身上,您是否知道是否应该打开某些编译器选项以获得完整的配置文件?

profiler 在哪个目录中查找 .pdb 信息?

谢谢

4

1 回答 1

1

默认情况下,Windows 上的探查器和调试器通过写入可执行文件的路径查找 PDB 文件。所以要做的第一件事是在一些十六进制编辑器中打开可执行文件并搜索“.pdb”字符串并检查磁盘上是否存在提到的文件。如果不是这种情况,请检查您是否为编译器指定了 /Zi 或 /ZI 选项,并为链接器指定了 /debug 选项。

如果应用程序的某些部分缺少符号名称,请检查这些部分是单独的动态库还是静态库,以及是否为它们生成调试信息。在静态库的情况下,很容易在链接过程中丢失调试信息,因为默认情况下 /Zi 标志将调试信息嵌入到 vc*.pdb 文件(例如 VS 2008 的 vc90.pdb)中,并且该文件通常不会导出通过构建系统进入 SDK。对于静态库,我个人认为使用 /Z7 选项获取调试信息最有用,因为它将其嵌入到目标文件本身,然后嵌入到 *.lib 文件中,然后传播到最终的 *.exe / *.dll 二进制文件的 PDB文件。

于 2012-12-02T19:21:05.687 回答