2013-08-01 17 views
5

Meine C# -Anwendung stürzt mit diesem Fenster ab. Es ist eine DirectX-Anwendung, die SharpDX verwendet.Wie debugge ich diesen C# Absturz?

Ich weiß nicht einmal, wo ich anfangen soll, dies zu debuggen? Irgendwelche Tipps?

enter image description here

, wenn ich das Debuggen von nativen Code zu aktivieren, sucht der Absturz wie folgt aus:

enter image description here

und der Stapel:

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 bedeutet, es ist eine Zugriffsverletzung bei einer angegebenen Adresse (0x5fea4c9). Die Adresse war kein Null-Zeiger (0x00000000), so dass es sich um nativen Code handelte, der versuchte, auf ein Stück Speicher zuzugreifen, das nicht dazugehörte, bereits gelöscht oder anderweitig nicht zugänglich war. Hast du die "häufigsten Quellen", die aufgelistet sind, überprüft? – nvoigt

+0

Verwenden Sie Zeiger? –

+0

@SriramSakthivel nicht direkt, aber das DirectX-Bibliothek, die ich benutze, verwendet Zeiger. – clamp

Antwort

1

Sie eine falsche Version verwenden der SharpDX.XAudio2.dll. Das bedeutet, dass Ihre App beispielsweise x86 ist und versucht, eine x64-Version zu verwenden. Sie müssen die richtige Version der DLL laden.

+0

Wie können Sie sagen? – NWard

+0

Dies ist ein häufiger Fehler, wenn Sie eine falsche .dll-Version verwenden –