2013-08-16 68 views
1

我試圖在VS2010中讀取一個轉儲文件,希望獲得堆棧跟蹤發生在我的發佈版本中崩潰的位置。但是,當我打開轉儲文件VS2010它指出在VS2010中讀取轉儲文件64/32位衝突

不能調試一個32位進程的64位轉儲,你必須收集 32個進程的32位轉儲

現在我的應用是32位,它在64位系統上運行。那麼這是否意味着我現在無法在64位系統上運行時讀取轉儲文件?有什麼建議麼 ?轉儲文件是使用Windows 7上的64位任務管理器生成的。如果我運行32位任務管理器並在Windows 7中生成轉儲,那麼將解決該問題?

回答

5

您仍然可以使用Windows調試工具包中的WinDbg打開此轉儲。

要在x64系統中爲Win32應用程序生成良好轉儲,您需要使用Win32版本MiniDumpWriteDump API創建轉儲。從appbar內容菜單或Ctrl + Shift + Esc熱鍵(以及Process Explorer)啓動的常規任務管理器屬於操作系統位,並且生成的轉儲沒有幫助。 Visual Studio本身可以執行32位轉儲,附加到進程,暫停並從菜單保存轉儲,或使用直接啓動的32位任務管理器:C:\Windows\SYSWOW64\taskmgr.exe

我正在使用LogProcessExceptions實用程序(我確信還有很多其他功能)可以在異常和交互式請求上生成小型轉儲。由於該實用程序可用於Win32和x64位數,因此32-bit version of the tool將爲您提供所需的轉儲。

+0

所以應該我使用生成我的LogProcessExceptions程序崩潰的時候,而不是使用任務日誌? – Rajeshwar

+0

這裏有很多選擇:你可以使用任何最終調用'MiniDumpWriteDump'的32位應用程序來生成應用程序的轉儲,甚至可以編寫自己的工具來達到此目的。這非常簡單直接,並且關於這個單一的API調用。 –