8

何らかの理由で、自分のプロセスにアタッチできませんか?! straceルートとして試してみるとうまくいきます。

$ ./list8 &
[1] 3141
$ child4 starts...

$ strace -p 3141
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Could not attach to process.  If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf
$ cat /proc/sys/kernel/yama/ptrace_scope
1

lubuntu 13.10で実行しています

Linux goal 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:19:42 UTC 2013 i686 i686 i686 GNU/Linux

gdbでは、カーネル設定をいじる必要なしに、ユーザー自身のプロセスにアタッチするにはどうすればよいでしょうか ( ptrace_scope)??

4

3 に答える 3

6

あなた自身の質問に答えたようです -- ptrace_scope を 1 に設定しているため、直接の子のみをトレースできます。同じユーザーに属するすべてのプロセスのトレースを許可するには、0 に設定します。これは、gdbattachコマンドを使用する場合にも必要です。

エラーメッセージが示唆するように、 /etc/sysctl.d/10-ptrace.conf ファイルを読んでください...

于 2013-08-21T23:02:47.113 に答える
2

これがルートとして失敗した場合、enlightenment (e17) の追跡に問題がありました。その理由は、既に追跡されているプロセスを追跡したり、gdb の下で実行したりすることができないためです。一部のプログラムは、独自のデバッグ情報を取得できるようにします。

于 2013-11-06T14:29:14.673 に答える