我正在尝试使用GDB附加到一个程序,但是它返回:
附加到进程29139
无法附加到进程。如果您的UID与目标进程的UID匹配,请检查/proc/sys/kernel/yama/ptrace_scope的设置,或者尝试以root用户身份再次尝试。有关更多详细信息,请参见/etc/sysctl.d/10-ptrace.conf
ptrace:操作不允许。
gdb-debugger返回:
无法附加到进程,请检查权限并重试。
strace返回:
attach: ptrace(PTRACE_ATTACH, ...): 操作不允许
我将“kernel.yama.ptrace_scope”从1更改为0,并将/proc/sys/kernel/yama/ptrace_scope
从1更改为0,并尝试使用set environment LD_PRELOAD=./ptrace.so
来执行此操作:
#include <stdio.h>
int ptrace(int i, int j, int k, int l) {
printf(" ptrace(%i, %i, %i, %i), returning -1\n", i, j, k, l);
return 0;
}
但它仍然返回相同的错误。我该如何将其附加到调试器上?
[nfsd]
)时,仍然会出现这个问题。显然,用户空间无法附加内核进程。 - pevik