私の理解が正しければ、Linux gdb ブレークポイントは、オペコードを「int 3」で上書きし、それらがヒットしたときに ptrace することで機能するようになりました。Ptrace はずっと存在しているわけではありません。ptrace がカーネルに導入される前は、ブレークポイントはどのように機能していましたか?
質問する
337 次
1 に答える
3
私はあなたの仮定に反対しなければなりません:ptrace
実質的に永遠に存在しています:
ptrace は、Seventh Edition Unix [ 1979 ] で最初に実装され、Unix の SVr4 [ 1989 ] と 4.3BSD [ 1986 ] ブランチの両方に存在しました。
(ソース: ウィキペディア、「ptrace」、年を追加)
gdb
の最初のリリースは 1986 年でした。
Linux に関する限り、ptrace
は Linux 1.0 以降の syscall です。初期バージョンは にありman 2 syscalls
ます。
(これは「ptraceなしでどのようにデバッグしますか」という質問には答えないことを認識しており、より技術的な回答が得られたらすぐにこれを削除しますが、それまでは関連する歴史的視点を提供すると思います。)
于 2013-10-08T11:10:39.233 に答える