現在の組み込みアプリケーションでは、GDB ウォッチ ポイントを固定メモリ アドレスに配置しようとしています。
例えば、私のアプリケーションは次のアドレス0x10793ad0を更新します。コードのどの部分が値を壊しているのかを確認するために、私は試しました。
watch 0x10793ad0
GDB はこの後エラーを出力しませんが、実行の開始と終了の間で値が変更されていることを確認したにもかかわらず、実行中に中断することはできません。
質問:
- 本当に固定アドレスに時計を置くことができますか? オンラインでそのような例に出会ったことはありません。
- これは正しい方法でしょうか、それとも何か見落としているのでしょうか?
ベストアンサー1
アドレスにウォッチポイントを設定する正しい方法はwatch *0x10793ad0
、gdb ドキュメント。
GDB がメモリ アドレスをどのタイプとして解釈するかを指定することもできます。例:
watch *(unsigned char*)0x10793ad0
または
watch *(int*)0x10793ad0