You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手C程序员求助:GDB运行程序触发SIGKILL终止错误

GDB启动程序触发SIGKILL的解决思路

针对你遇到的GDB运行程序就触发SIGKILL但直接执行正常的问题,给你几个可操作的排查步骤:

  • 检查系统ptrace权限限制
    很多Linux发行版默认限制了GDB调试依赖的ptrace机制,可以先临时放开测试:

    echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    

    如果测试有效,想要永久生效,编辑/etc/sysctl.d/10-ptrace.conf文件,把kernel.yama.ptrace_scope的值改成0,然后执行sudo sysctl -p生效。

  • 排查OOM Killer导致的进程被杀
    系统内存不足时,OOM Killer会强制杀掉进程,你可以通过日志确认:

    dmesg | grep -i "killed process"
    

    或者查看系统日志文件(比如/var/log/syslog或/var/log/messages),如果找到对应进程号的被杀记录,关闭其他占用内存的程序再试。

  • 验证GDB自身状态
    编译一个极简程序测试GDB是否正常工作:

    int main() { return 0; }
    

    编译命令:gcc -g test.c,然后启动GDB执行run。如果还是报错,说明GDB可能损坏或版本兼容问题,尝试更新或重新安装GDB。

  • 临时关闭安全机制
    SELinux、AppArmor或杀毒软件可能拦截GDB调试,临时关闭测试:

    • SELinux:sudo setenforce 0
    • AppArmor:sudo systemctl stop apparmor
      测试正常后,再逐步排查具体是哪个规则导致的问题。
  • 确认编译参数
    确保编译时添加了-g生成调试信息(虽然不是导致SIGKILL的直接原因,但能保证GDB正常调试),比如:

    gcc -g -Og hello.c
    

内容的提问来源于stack exchange,提问作者Min Seok Song

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:39:58