【问题标题】:difficult understanding memory address in Intel's vtune tool英特尔的 vtune 工具中难以理解的内存地址
【发布时间】:2016-06-27 13:21:34
【问题描述】:

在上图中,我使用了 vtune 工具来查看进程的流程。

还为windbg转储内存。

我打算看看windbg中那个Engine.dll+840c1是否反汇编了,但是

似乎结果不同。

你们能告诉我我做错了什么吗??

【问题讨论】:

  • 我不清楚你是如何从 0x100840bd 到 Engine+0x840c1

标签: windbg dump intel-vtune


【解决方案1】:

VTune 堆栈中的[Engine.dll] 实际上并不意味着Engine.dll 库的加载地址(就像您在WinDbg 中对待它一样)。它代表了这个库中一些未解决的函数。当模块没有调试信息时,VTune 使用 [Module name] 表示作为该模块内所有函数的函数名。 VTune 能够使用静态分析来识别函数边界 - 因此来自 Engine.dll 的所有带有性能数据的函数或出现在堆栈中的不是导出函数(如 DllUnregisterServer)的函数都将表示为 [Engine.dll]。

尝试通过例如 disasm Engine.dll dumpbin 工具 - 地址应与您在 VTune 中看到的地址匹配,以便您能够比较或验证 VTune 中的 disasm 视图。

【讨论】:

  • 感谢您的申请。我对它做了一些测试。我发现 vtune 的模块入口点和转储文件的模块入口点是不同的。还尝试了匹配反汇编代码,但并不完全相同。这只是可比的。当我匹配模块入口点时,我发现函数的地址指向正确的位置。最后,我有一个问题。你的意思是vtune里面有dumpbin工具吗?
  • dumpbin 是 MS Visual Studio 的一部分。您还可以更改 VTune options 中的程序集语法。
猜你喜欢
  • 2016-12-25
  • 2022-01-19
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多