为什么 CodeBlocks 不会附加到进程?
Why won't CodeBlocks attach to a process?
我最近 运行 遇到一个问题,我想在这里分享问答风格。希望它能帮助其他人,至少它被记录下来,所以我以后可以找到它:)
当尝试 运行 在 CodeBlocks 中进行 Ncurses 时,它在命中 initscr();
时爆炸。使用 VSCode 这不是问题,所以我知道我缺少一些东西。在 Whosebug 的帮助下,使用 gdb(和 CodeBlocks)解决此问题的最佳方法似乎是在 运行ning 之后附加到进程本身,而不是在 CodeBlocks 中启动它。 (Debugging ncurses application with gdb)
但是,当我尝试附加到 PID 时,它只是说它无法附加到进程。这是为什么?
我发现如果我尝试在命令行上通过 gdb 运行 它,我也会遇到同样的问题。它来自 Kernal Hardening 以防止黑客攻击。有了这个答案:
我发现我需要切换到 root 用户。然后 运行 echo 0 > /proc/sys/kernel/yama/ptrace_scope
现在代码块将愉快地附加到进程中,您可以使用断点。
我最近 运行 遇到一个问题,我想在这里分享问答风格。希望它能帮助其他人,至少它被记录下来,所以我以后可以找到它:)
当尝试 运行 在 CodeBlocks 中进行 Ncurses 时,它在命中 initscr();
时爆炸。使用 VSCode 这不是问题,所以我知道我缺少一些东西。在 Whosebug 的帮助下,使用 gdb(和 CodeBlocks)解决此问题的最佳方法似乎是在 运行ning 之后附加到进程本身,而不是在 CodeBlocks 中启动它。 (Debugging ncurses application with gdb)
但是,当我尝试附加到 PID 时,它只是说它无法附加到进程。这是为什么?
我发现如果我尝试在命令行上通过 gdb 运行 它,我也会遇到同样的问题。它来自 Kernal Hardening 以防止黑客攻击。有了这个答案:
我发现我需要切换到 root 用户。然后 运行 echo 0 > /proc/sys/kernel/yama/ptrace_scope
现在代码块将愉快地附加到进程中,您可以使用断点。