【发布时间】:2013-10-13 10:56:51
【问题描述】:
我正在尝试使用 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, ...): Operation not allowed”
我将 "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;
}
但它仍然返回相同的错误。如何将它附加到调试器?
【问题讨论】:
标签: c linux debugging gdb strace