2016-03-12 42 views
2

enter image description here英特爾vtune工具難以理解內存地址

在上圖中,我用vtune工具來查看進程的流程。

也爲windbg傾倒內存。

我打算看看是否在WinDbg中是Engine.dll + 840c1拆卸部分,但

似乎結果是不同的。

你能告訴我我做錯了嗎?

+0

我不清楚你是如何從0x100840bd到Engine + 0x840c1 –

回答

0

VTune堆棧中的[Engine.dll]實際上並不意味着Engine.dll庫的加載地址(正如您在WinDbg中處理的那樣)。它代表了這個庫的一些未解決的功能。當模塊沒有調試信息時,VTune使用[模塊名稱]表示作爲函數名稱用於此模塊中的所有功能。 VTune能夠使用靜態分析識別功能邊界 - 因此Engine.dll中所有具有性能數據的函數或出現在不是導出函數的堆棧中的函數(如DllUnregisterServer)都將表示爲[Engine.dll]。

嘗試通過如下方式解除Engine.dll的問題: dumpbin工具 - 地址應與您在VTune中看到的地址相匹配,以便您能夠比較或驗證VTune中的disasm視圖。

+0

謝謝你的申請。 我對它做了一些測試。 我發現vtune的模塊入口點和轉儲文件的模塊入口點是不同的。 也試過匹配反彙編代碼,但它不完全一樣。它不過是可比的。 當我匹配模塊入口點時,我發現函數的地址指向正確的位置。 最後,我有一個問題。你的意思是vtune裏面有dumpbin工具嗎? –

+0

[dumpbin](https://msdn.microsoft.com/en-us/library/c1h23y6c.aspx)是MS Visual Studio的一部分。您還可以在[VTune選項](https://software.intel.com/zh-cn/node/544340)中更改彙編語法。 – Vital