WinDbg (ネイティブ x64 -- Itanium ではない) を使用して、マネージド DLL とアンマネージド DLL の両方をロードする x64 (アンマネージド) アプリケーションをデバッグしています。
アンマネージ DLL の 1 つにブレークポイントを設定しようとしています。ブレークポイントに到達してステップスルーすると、表示される指示が本来あるべきものとはまったく異なります。2 つの異なる逆アセンブラーを使用して、ステップ実行時に WinDbg が正しい逆アセンブリを表示していないことを確認しました。
アプリケーションにアタッチすると、次のような行が表示されます。
ModLoad: 00000000`XXXXXXXX 00000000`YYYYYYYY C:\MyDLL.DLL
ベース アドレス XXXXXXXX を反映するように、2 つの逆アセンブラのアドレスを調整しました。
何が問題なのですか?