ptrace() 機能は /proc の先頭に実装されています。新しいアプリケーションは直接 proc(4) を使用してください。
Solaris 7 では、ptrace() ルーチンは BCP モードで実行するアプリケーションをサポートするために単独で存在します。ptrace() ルーチンは要求値として整数 1〜9 を使用しますが、SunOS 4 ルーチンは <sys/ptrace.h> で要求値をシンボリック定数として定義します。次のシンボリック定数は、Solaris 7 と互換性があります。
PTRACE_TRACEME
PTRACE_PEEKTEXT
PTRACE_PEEKDATA
PTRACE_PEEKUSER
PTRACE_POKETEXT
PTRACE_POKEDATA
PTRACE_POKEUSER
PTRACE_CONT
PTRACE_KILL
PTRACE_SINGLESTEP
SunOS 4 の PTRACE_CONT addr 引数は、中断しているプロセスが実行を再開すべき場所を指定します。ただし、プロセスが中断したところから実行が再開する addr = 1 の場合は除きます。Solaris 7 は、addr が常に 1 に等しく、実行が常にプロセスが中断したところから再開することを要求します。また、データによって指定されたものを除いたすべてのペンディングシグナルをキャンセルします。SunOS 4 の PTRACE_CONT は、ペンディングシグナルをすべてキャンセルするとは限りません。
表 16-2 に示す SunOS 4 の有効な要求は、 Solaris 7 ptrace() ルーチンではサポートされません。
表 16-2 Solaris 7 でサポートされていない ptrace() 要求
PTRACE_ATTACH |
PTRACE_GETWINDOW |
PTRACE_DETACH |
PTRACE_SETWINDOW |
PTRACE_GETREGS |
PTRACE_22 |
PTRACE_SETREGS |
PTRACE_23 |
PTRACE_GETFPREGS |
PTRACE_26 |
PTRACE_SETFPREGS |
PTRACE_27 |
PTRACE_READDATA |
PTRACE_28 |
PTRACE_WRITEDATA |
PTRACE_SYSCALL |
PTRACE_READTEXT |
PTRACE_DUMPCORE |
PTRACE_WRITETEXT |
PTRACE_SETWRBKPT |
PTRACE_GETFPAREGS |
PTRACE_SETACBKPT |
PTRACE_SETFPAREGS |