2010-05-21 49 views
2

我有一個程序在運行「release」版本時崩潰(嘗試讀取不良的內存地址),但在Visual Studio調試器中運行「debug」版本時沒有報告任何問題。如何查找程序崩潰

當程序崩潰時,操作系統詢問我是否想打開調試器,如果我說是,那麼我會看到一個箭頭指向我在某個彙編器列表中的位置,這個彙編器我不夠熟練正確閱讀(30年前我學會了6502彙編)。有沒有什麼辦法可以確定我的源代碼中哪裏存在讀取的內存?

回答

5

您需要在啓用了調試信息的情況下構建程序(即使對於發佈版本,您也可以執行此操作),並且調試器(只需將它複製到可執行文件旁邊)就可以訪問調試信息(* .pdb文件)。
VS應該能夠顯示源,堆棧和其他一切。

+0

只是一句話。像那樣你必須在調試器中運行它。這樣你可以改變行爲並防止崩潰發生。 如果它仍然崩潰,比完美。否則,我建議檢查我發佈的鏈接。 – Gianluca 2010-05-21 10:29:19

+0

如果我在調試器中運行發行版本,它會以接近全速運行嗎? – Mick 2010-05-21 10:38:50

+0

@Mick:你不必在調試器中運行它。當你發現自己的時候,操作系統會問你是否要在程序崩潰時進行調試。 (這就是所謂的即時調試。)但調試器必須擁有調試信息才能充分利用該功能。 – sbi 2010-05-21 19:06:07

0

只是想添加一點除了什麼sbi告訴你。有用於Windows的Microsoft調試工具。這個軟件包包含一本好書「調試幫助」。即使您不打算使用WinDbg來分析崩潰,您可能會發現閱讀「調試幫助」相當有用。