だから私はこのソースgdb-1515を持っています。Snow Leopard で Xcode 3.2.6 コマンド ライン ツールを使用しています (この gdb ソースは、それらに含まれる gdb のソースです)。
実行しようとしています (内部/private/var/root/Downloads/gdb-1515/src/gdb/gdbserver
):
gcc -I. -I. -I./../regformats -I./../macosx -I./../../include -I../../bfd -I./../../bfd -I/private/var/root/Downloads/gdb-1515/src/bfd ./../macosx/macosx-nat.c
次の場合に失敗します。
./../macosx/macosx-nat.c:34:17: error: bfd.h: No such file or directory
./../macosx/macosx-nat.c:35:18: error: defs.h: No such file or directory
./../macosx/macosx-nat.c:36:21: error: gdbcore.h: No such file or directory
./../macosx/macosx-nat.c:37:20: error: serial.h: No such file or directory
./../macosx/macosx-nat.c:38:22: error: ser-base.h: No such file or directory
./../macosx/macosx-nat.c:39:22: error: ser-unix.h: No such file or directory
./../macosx/macosx-nat.c:40:22: error: inferior.h: No such file or directory
./../macosx/macosx-nat.c:41:23: error: objc-lang.h: No such file or directory
./../macosx/macosx-nat.c:42:21: error: infcall.h: No such file or directory
In file included from ./../macosx/macosx-nat-dyld.h:5,
等。
フォルダbfd.h
内にはどこにもありません。gdb-1515
find /private/var/root/Downloads/gdb-1515 -name bfd.h
出力を返しません。
attach_to_classic_process
ptrace の代わりに( 内で定義されたmacosx/macosx-nat.c
)を呼び出したい- そのため、ディレクトリgdbserver/macosx_low.c:476
からビルドしようとしています。macosx/macosx-nat.c
gdbserver
現在、ロゼッタ プロセスで失敗する ptrace が使用されています。
わかりましたので、リモート gdb 接続を使用して、Snow Leopard で実行されている従来の (Rosetta) プロセスをデバッグしたいと思います。いずれにせよ、すべての Rosetta アプリケーションがリモート接続を使用してデバッグを行っているため、これは明らかな原因です。さらに、gdb アプリケーションは、前述の PowerPC アプリケーションと正常に接続できます。このAppleソースからgdbserverをコンパイルしようとしていますただし、これはエイズです。このパッケージに含まれる gdbserver の方法は根本的に間違っているようです。gdbserver が ptrace を使用しようとしているときに、元の gdb が特別な関数を使用して従来のプロセスへの接続を確立しているためです。私の頭に浮かぶもう1つのことは、地獄のgdbserverが非常に遅れて複雑でなければならない理由です-機能的なgdbコマンドラインアプリケーション(おそらくある種のラッパー)と直接連携しないのはなぜですか?