C++ VSPerf VS2010和其他分析工具未拾取pdb
尝试使用VSPerfCmd(VS2010探查器)和“英特尔VTune放大器XE 2013”进行评测:对于.vsp文件中的VSPerfCmd,有些结果可用。然而,profier并没有接收pdb。应用程序的某些部分没有可用的代码 这已经发生在您身上了吗?您知道是否应该打开一些编译器选项以获得完整的配置文件吗 探查器在哪个目录中查找.pdb infoC++ VSPerf VS2010和其他分析工具未拾取pdb,c++,visual-studio-2010,profiler,intel-vtune,vsperfmon,C++,Visual Studio 2010,Profiler,Intel Vtune,Vsperfmon,尝试使用VSPerfCmd(VS2010探查器)和“英特尔VTune放大器XE 2013”进行评测:对于.vsp文件中的VSPerfCmd,有些结果可用。然而,profier并没有接收pdb。应用程序的某些部分没有可用的代码 这已经发生在您身上了吗?您知道是否应该打开一些编译器选项以获得完整的配置文件吗 探查器在哪个目录中查找.pdb info 谢谢默认情况下,Windows上的探查器和调试器会按照写入可执行文件的路径查找PDB文件。所以首先要做的是在一些十六进制编辑器中打开可执行文件,搜索“.
谢谢默认情况下,Windows上的探查器和调试器会按照写入可执行文件的路径查找PDB文件。所以首先要做的是在一些十六进制编辑器中打开可执行文件,搜索“.pdb”字符串,并检查磁盘上是否存在提到的文件。如果不是这样,请检查是否为编译器指定/Zi或/Zi选项,并为链接器指定/debug选项 如果应用程序的某些部分缺少符号名,请检查这些部分是单独的动态库还是静态库,以及是否为这些部分生成调试信息。对于静态库,很容易在链接过程中丢失调试信息,因为默认情况下/Zi标志将调试信息嵌入到vc*.pdb文件中(例如VS 2008的vc90.pdb),而构建系统通常不会将该文件导出到SDK中。对于静态库,我个人认为对调试信息使用/Z7选项最有帮助,因为它将调试信息嵌入到对象文件本身,然后嵌入到*.lib文件,然后传播到最终的*.exe/*.dll二进制文件的PDB文件