2009-07-27 31 views
0

我有一個運行在Win32和x64版本(使用Windows XP x64)的大型C++應用程序。當調試x64版本,每個代碼改變後的第一個調試會話我開始爲什麼我的VC 2005 x64調試會話總是在第一次試驗時失敗(但不是在第二次試驗中)?

在0x77ee5f3c未處理的異常停在MyApp.exe中: 0000005:訪問衝突寫入位置0x0000000000030c90。

調用堆棧顯示NTDLL無盡的遞歸調用:

ntdll.dll!0000000077ee5f46()  
ntdll.dll!0000000077ef31ed()  
ntdll.dll!0000000077efbc0b()  
ntdll.dll!0000000077f2539e()  
ntdll.dll!0000000077ee5f46()  
ntdll.dll!0000000077ef31ed() 
etc. 

當在這之後我選擇「停止調試」,然後在「開始調試」通常一切都很好,直到我編譯不會再出現問題一些代碼和鏈接,或者如果我重新啓動Visual Studio。

回答

1

你列出的地址是32位地址。這表明VS正試圖在32位進程上使用其64位調試器。

您的解決方案中可能包含'Win32','x64'和'任意CPU'構建平臺。確保你的'主動構建平臺'是一致定義的。 .net的東西聲稱「表面上有任何cpu」,在它下面有32位操作的一些親和力。

關閉「編輯並繼續」調試似乎也有助於這種事情。

+0

關閉「編輯並繼續」似乎減少了問題的發生頻率,但它並沒有消失,我沒有使用.NET,而是純粹的Win32,選定的目標機器是/ MACHINE:X64。 – 2009-07-31 09:43:34

相關問題