2013-07-05 85 views
0

我建立了一個程序,它工作正常,這幾天。當我今天運行它,它顯示了這個Unhandled exception at 0x7770efc8 in LHM.exe: 0xC0000005: Access violation writing location 0x00440f48.MFC未處理的異常

ntdl.dll!7770fb12()
在下面的調用堆棧,它表明幀下面可能是不正確的和/或丟失,加載ntdll.dll中沒有的符號。

,我發現ntdl.dll!7770fb12()是在拆卸7770FB12 push esi

反正我可以解決這個問題?

+0

極品...更多...背景... –

+0

你需要發生問題後的源代碼。 –

+1

@RogerRowland,因爲他的堆棧聽起來損壞我不會打賭。最好的辦法是調試它,看看它出現訪問衝突時的位置,或者查找可能不正確地寫入緩衝區的內容。 –

回答

2

即使調用堆棧不顯示在你的代碼的調用,最終導致ntdll.dll中的任何特定位置,在大多數情況下,你可以找出通過你的代碼從一開始就加強呼叫。如果你的代碼太大,嘗試隨機設置斷點並連續縮小它。

這是一些很基本的,也許原油調試的程序,但它幫助我很多......

0

「下面的幀可能是不正確的」絕對沒有損壞堆的標誌。如果您從MS服務器加載ntdll的公共符號(很容易從IDE完成 - 也就是說,在「模塊」窗口右鍵單擊ntdll),這很容易解決。

深入剖析可用here