2013-08-01 17 views
5

L'applicazione My C# si arresta in modo anomalo con questa finestra. È un'applicazione DirectX che usa SharpDX.Come eseguire il debug di questo arresto C#?

Non so nemmeno da dove iniziare a eseguire il debug di questo? Qualche consiglio?

enter image description here

quando ho attivare il debug delle codice nativo, l'incidente assomiglia a questo:

enter image description here

e la pila è:

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 indica che si tratta di una violazione di accesso a un indirizzo specificato (0x5fea4c9). L'indirizzo non era un puntatore nullo (0x00000000), quindi era il codice nativo che tentava di accedere a un pezzo di memoria che non apparteneva ad esso, era già cancellato o altrimenti inaccessibile. Hai controllato le "fonti più comuni" che sono elencate? – nvoigt

+0

Stai usando i puntatori? –

+0

@SriramSakthivel non direttamente, ma quella libreria directx che utilizzo utilizza i puntatori. – clamp

risposta

1

Si utilizza una versione errata di SharpDX.XAudio2.dll. Ciò significa che l'app, ad esempio, è x86 e sta tentando di utilizzare una versione x64. È necessario caricare la versione corretta della DLL.

+0

Come puoi dirlo? – NWard

+0

Si tratta di un errore comune quando si utilizza una versione errata di .dll –