3

説明のつかないときにこのエラーをスローするプログラムがあります。

System.AccessViolationException は処理されませんでした
メッセージ: 保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。

これは、Windows Server 2008 の x64 バイナリです。プログラムが x86 バイナリとしてコンパイルされている場合、問題の頻度は低くなりますが、それでも発生します。

このプログラムはサーバー ポート プログラムであり、ネットワーク (UDP) からデータを受信し、それをユーザーに送信します (ユーザーが接続している場合)。

LZMA.c# を追加してデータを圧縮するまでは機能しました。

LZMA.c# は、関数のログに基づいて正しく動作しているようです。

ここで、プログラムから LZMA.c# を削除しても、一見ランダムなタイミングでクラッシュします。

スタック トレースには何も役に立たないことがわかります。常に次のようになっています。

ntdll.dll!000000007771fefa() [ 以下
のフレームは正しくないか、欠落している可能性があります。ntdll.dll のシンボルが読み込まれていません ] !000007FEF47D44F8() CLR.DLL!000007FEF4B523D2() CLR.DLL ! 000007FEF4B522F0 () CLR.DLL!000007FEF4DD7B85() CLR.DLL! 000007fef4d14d1c() clr.dll!000007fef4d14b77() clr.dll!000007fef4d147e4() clr.dll!000007fef4d10fc6() clr.dll!000007fef4b79841()














clr.dll!000007fef4b7ca67()
clr.dll!000007fef4b789bc()
clr.dll!000007fef4b7babf()
clr.dll!000007fef4b516d2()
clr.dll!000007fef4d98fa4()
msvcr110_clr0400.dll!000007fef5b48ca6()
ntdll.dll!000000007770554d()
ntdll .dll!00000000776e5d1c()
ntdll.dll!000000007771fe48()
00000000f3468180()
clr.dll!000007fef481f713()
clr.dll!000007fef481f242()
clr.dll!000007fef481f30b()
clr.dll!000007fef48d27c1()
clr.dll!000007fef48c6d80( )
clr.dll!000007fef48c6d0e()
clr.dll!000007fef48c6c85()
clr.dll!000007fef48c6dbb()
clr.dll!000007fef48d2728()
clr.dll!000007fef48c98cf()
clr.dll!000007fef48c97d3()
clr.dll!000007fef49566ae()
kernel32.dll!00000000775cf56d()
ntdll.dll!0000000077703281()

何が悪いのですか? (gc がガベージを収集しているときにクラッシュしている可能性がありますか?)

4

0 に答える 0