Snow Leopard 用の MacPorts 経由でコンパイルされた GDB 7.1 を使用して、バイナリ (アセンブリのみ) をデバッグしています。find
gdb コマンドを使用して見つけた特定のアドレスに興味があります。したがって、それは実際に有効なアドレスです。
(gdb) printf "%s\n", 0x00196f34
bruno
(gdb)
問題は、ウォッチポイントを設定して ( watch *0x00196f34
) アクセスすると、システムがクラッシュしてすぐに再起動することです。
ハードウェア ウォッチポイントが有効になっていることに気付き、それほど重大な結果が得られないことを期待して、使用するソフトウェア ウォッチポイントに切り替えましたset can-use-hw-watchpoints 0
が、問題は解決しませんでした。
Xcodegdb 6.3
に付属のバージョンを使用しようとしましたが、正常に動作します。このような時計を 6.3 と 7.1 の両方に設定したときに気付いた違いがあります。
gdb 6.3 の場合
(gdb) watch *0x00196f34
Watchpoint 1: *0x00196f34
(gdb) info breakpoints
Num Type Disp Enb Address What
1 watchpoint keep y *0x00196f34
gdb 7.1 の場合
(gdb) watch *0x00196f34
Hardware watchpoint 1: *1666868
(gdb) info breakpoints
Num Type Disp Enb Address What
1 hw watchpoint keep y *1666868
新しい gdb がアドレスを 10 進数に変換しているのに、動作する古い gdb が 16 進数で出力されるのはなぜですか? 私はまだgdb 7で作業したいので、ここで何が起こっているのか手がかりはありますか?
ブルーノ・ベラスコ