代码之家  ›  专栏  ›  技术社区  ›  rollstuhlfahrer

Windows性能分析器缺少ImageId事件

  •  3
  • rollstuhlfahrer  · 技术社区  · 6 年前

    我有一个应用程序,我想用Windows性能分析器分析它。这一切都可以,但我没有从我的应用程序得到任何合理的堆栈跟踪。

    在Windwos 7上运行应用程序时 1 ,Process Explorer显示要分析的部件的正确堆栈跟踪。这里的函数是堆栈中的-9个标记行:

    Process Explorer Stack Trace

    因为我在Windows10VM上安装了所有的性能分析工具 2

    乌弗雷特 . 在WPA中打开它们并将注意力集中在目标应用程序上时,这是堆栈跟踪:

    WPA Stack Trace

    我感兴趣的所有信息都不见了。堆栈显示为 <Application>.exe!<Missing ImageId event>

    我做错什么了?


    如果这给了你一个提示,这里是安装的相关软件:

    1: Windows 7计算机已安装Visual Studio(C#)。

    我做了标记 ,因为目标应用程序是用Delphi编写的。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Zhentar    6 年前

    windows10wpa(以及windows8.1,在较小程度上)放弃了对旧的调试符号格式的支持;它现在只支持自MSVC 7以来一直是标准的“RSDS”格式。使用旧符号文件格式的PE文件(例如,VB6生成NB10 PDB文件)将导致“缺少ImageId事件”错误。

    (消息本身在技术上是不正确的;即使在跟踪文件中也可能存在ImageId,但它正在查找ImageId/DbgID_RSDS事件,无法为非RSDS pdb生成该事件)