WinDbg でのデバッグ中に、C++ クラスのメンバー変数を監視しようとしています。メンバー関数にブレークポイントを設定し、変数を観察しながら次の行に進みます。ただし、すべてのメンバー変数に対してこのメモリ アクセス エラーが発生し続けます。これを解決する方法はありますか?コードをデバッグするにはこれが必要です。
ありがとう、
アメイ
WinDbg でのデバッグ中に、C++ クラスのメンバー変数を監視しようとしています。メンバー関数にブレークポイントを設定し、変数を観察しながら次の行に進みます。ただし、すべてのメンバー変数に対してこのメモリ アクセス エラーが発生し続けます。これを解決する方法はありますか?コードをデバッグするにはこれが必要です。
ありがとう、
アメイ
リリースまたはデバッグ バージョンをデバッグしていますか? リリース版の場合、this ポインタは ecx レジスタに格納されます。そのレジスタは、メソッド全体でさまざまな目的に再利用される可能性があります。ローカルウィンドウの「場所」ボタンを押すと、それを確認できます。それが問題である場合は、メソッドの最初にブレークポイントを設定してみて、ecx レジスタの内容を確認してください。次に、その値をウォッチとして使用します。例: (CMyClass*) address in ecx
アドレスは必ず 0x 形式で指定してください。これは、windbg の特性の 1 つです。