2010-10-22 69 views
14

我最近收到來自客戶的64位故障轉儲。
我們的流程都是32位的,但客戶機運行的x64 Server 2008的調試在64位機器上捕獲的32位進程的轉儲

的Visual Studio(2008年和2010速成)告訴我,我必須使用的MSVSMON.EXE的64位版本,這我不能,因爲我沒有64位機器。

我很確定有一種方法可以在WinDbg中做到這一點,但我發現WinDbg是敵對的。

有什麼辦法在32位機器上調試64位轉儲,最好是使用Visual Studio?

+1

這不再是一個問題[來自VS 2013](http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/opening-64-bit-dumps-of-32-bit -processes-in-visual-studio-2013.aspx)。 – 2015-10-05 21:30:15

回答

10

您需要確保客戶使用32位工具(adplus或DebugDiag)來捕獲32位進程的崩潰轉儲。然後你可以使用你的32位機器來調試轉儲。

http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64-machine.aspx

雖然Isalamon的評論在技術上是正確,沒有人願意執行,由於堆棧跟蹤是可怕的。

讓你的客戶知道這是必要的,並希望他/她合作。

如果你不熟悉轉儲分析,微軟一直在你身邊,http://support.microsoft.com

+2

我使用ProcDump,如鏈接的博客文章中所述。即使在VS2010中使用託管代碼,也可以發揮魅力。 – GregC 2011-08-16 22:01:05

1

是用戶轉儲還是內核轉儲?它看起來像你有系統轉儲。如果是這種情況,那麼你可以在windbg上獲得!wow64exts擴展的幫助,並且可能導致問題的根源。

1

我已經使用切換到x86的模式下使用的建議得到了優異的成績wow64exts.sw作爲建議在這裏!

http://blogs.msdn.com/b/ntdebugging/archive/2008/06/03/how-to-debug-wow64-applications.aspx

同樣的忠告人物在這裏:

http://blogs.msdn.com/b/msdnforum/archive/2010/03/14/how-do-i-switch-to-32bit-mode-when-i-use-windbg-to-debug-a-dump-of-a-32bit-application-running-on-an-x64-machine.aspx

和背景及相關命令在這裏:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384163(v=vs.85).aspx

希望這會成爲體面的投入就這個話題除了什麼在這個線程已經存在的彙編。謝謝。

1

我通過使用32位任務管理器(C:\ Windows \ SysWOW64 \ Taskmgr.exe)來捕獲轉儲。

相關問題