2013-08-01 105 views
5

我的C#應用​​程序與此窗口崩潰。這是一個使用SharpDX的DirectX應用程序。如何調試此C#崩潰?

我甚至不知道從哪裏開始調試呢?有小費嗎?

enter image description here

當我使的本機代碼調試,崩潰是這樣的:

enter image description here

且堆棧:

ntdll.dll!77d1f8b1()  
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
ntdll.dll!77d1f8b1()  
KernelBase.dll!7658149d() 
kernel32.dll!75c51194()  
kernel32.dll!75c51194()  
ntdll.dll!77d5b459()  
ntdll.dll!77d5b42b()  
ntdll.dll!77d5b3ce()  
ntdll.dll!77d10133()  
XAudio2_7.dll!61fb6b43()  
XAudio2_7.dll!61fa7fa2()  
XAudio2_7.dll!61fa79e9()  
XAudio2_7.dll!61fa8bb8()  
XAudio2_7.dll!61fa9492()  
[External Code] 
SharpDX.XAudio2.dll!SharpDX.XAudio2.Voice.DestroyVoice() Line 916 + 0x34 bytes C# 
+2

0xc0000005表示它是指定地址(0x5fea4c9)處的訪問衝突。該地址不是空指針(0x00000000),所以它是試圖訪問不屬於它的一段內存的本地代碼,已被刪除或無法訪問。你檢查了列出的「最常見的來源」嗎? – nvoigt

+0

你使用指針嗎? –

+0

@SriramSakthivel不是直接的,但我使用的directx庫使用指針。 – clamp

回答

1

您使用的是錯誤的版本SharpDX.XAudio2.dll的。這意味着你的應用程序,例如,是x86,它試圖使用x64版本。您必須加載正確版本的dll。

+0

你怎麼知道? – NWard

+0

當您使用錯誤版本的.dll時,這是一個常見錯誤 –