2011-11-22 34 views
1

根據MSDN,Visual Studio在調試模式下使用了一個特殊的堆,默認情況下,額外的「無人地帶」字節設置爲0xFD,以跟蹤堆損壞 當覆蓋這些值時是否有強制中斷視覺的方法?我到處都找不到這些信息,似乎是非常有用的,更不必手工轉儲memstat像MSDN提出如何在調試中破壞堆時強制VS 2010中斷?

感謝

+0

好吧,我設法解決一些堆腐敗問題,但我仍然有一些堆腐敗在「返回EXIT_SUCCESS;」我的程序行,甚至認爲我做了_ASSERTE(_CrtCheckMemory());在返回之前。什麼樣的堆腐敗/問題可能導致這種情況? – lezebulon

回答

3

你可以嘗試使用_CrtSetDbgFlag()當在調試模式。

Reference

+0

非常感謝,這正是我一直在尋找的。現在我修復了一些堆腐敗問題,在「return EXIT_SUCCESS;」過程中我仍然有一些堆損壞。我的程序行,甚至認爲我做了_ASSERTE(_CrtCheckMemory());就在之前 – lezebulon

0

如果要在下次更改內存中的某個位置時暫停執行,請設置data breakpoint。你需要事先知道腐敗發生的地點。您可能需要設置一個常規的中斷點,其中分配了內存,並且沒有人的地址設置爲0xFD。在那之後,你在內存中有一個位置,並設置數據斷點。