1

わかりましたので、FrictionalGames のオープン ソース ゲームである Penumbra: Overture の独自のビルドをコンパイルしようとしています。Visual Studio 2010 デバッグ モードでゲームを実行すると、次のエラーが発生します。

First-chance exception at 0x011e0b0e in Penumbra.exe: 0xC0000005: Access violation reading location 0xbaadf011.

Unhandled exception at 0x76f115de in Penumbra.exe: 0xC0000005: Access violation reading location 0xbaadf011.    

そして、Visual Studio は、実行を中断するか続行するかを尋ねてきます。続行を押すと、ゲームのソースから tidtable.c にジャンプし、続行を何度も押すと、145 行目と 498 行目の間でジャンプします。それだけの情報です。私は今与えることを考えることができます。

4

1 に答える 1

3

アクセス違反読み取り箇所 0xbaadf011

0xbaadf00d + 4 です。0xbaadf00d は、HeapAlloc() で割り当てられたメモリを初期化するために使用される値です。つまり、ゲームのソース コードにバグがあります。ポインタの初期化を忘れています。コール スタック ウィンドウを見て、どのコードがそのポインターを使用しているかを確認し、ポインターを含むオブジェクトが割り当てられた場所をトレース バックします。

そうしないと、アクセス違反の後、プログラムの実行またはデバッグを続行できません。tidtable.c にたどり着いたのは、心臓発作後にプログラムを終了させる CRT コードが含まれているためです。

于 2012-04-30T13:00:52.960 に答える