2011-09-07 110 views
-1

大家好我正在運行Visual2005,並且想要生成MAP文件來分析崩潰情況 。Visual Studio 2005調試:生成MAP文件|崩潰轉儲

我已啓用以下設置。

Linker->Generate MAP - Yes (/DEBUG) 
General Debugging Info - Yes (/MAP) 

並通過在空位置寫它使應用程序崩潰。

如果我使用VS2005運行EXE,它會在EXE的路徑中生成MAP文件。

如果我運行EXE外側VS2005應用程序崩潰,但沒有生成MAP文件。

我需要做其他設置來生成MAP文件嗎?

編輯:我需要分析崩潰發生在客戶端位置,我們會給他們一個EXE的調試版本,當它崩潰時,他們會向我們發送我們可以分析的DUMP。

回答

1

AFAIK,MAP文件由鏈接器創建,而不是在運行時創建。你需要映射文件還是崩潰轉儲?這是兩件不同的事情。

如果要將故障轉儲功能添加到程序中,則需要MiniDumpWriteDump 函數和全局異常處理程序。然後,您可以使用程序生成的崩潰轉儲進行驗屍調試。在這裏看到的細節:http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx

關於地圖文件,你只需要崩潰地址,然後你可以嘗試通過這個地址和映射文件找到源代碼行。這種技術在很多情況下不起作用,驗屍調試要好得多。

編輯。那麼,你需要一個崩潰轉儲,這是一個很好的決定。使用地圖文件是不可靠的。默認情況下,Windows用戶模式程序不會創建故障轉儲。該功能必須手動添加。 CodeProject文章描述瞭如何做到這一點,並展示瞭如何進行事後調試。

+0

雅我需要一個故障轉儲 – vrbilgi