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

GDB调试遇fork后脱离子进程无响应,如何退出或继续调试?

解决GDB调试中"Detaching after fork from child process.."无响应的问题

强制退出GDB

如果输入命令无响应,直接按 Ctrl + C 中断当前操作,随后执行 quit(或缩写q)命令退出GDB。若Ctrl + C也无法触发交互,可在另一个终端通过ps aux | grep gdb找到GDB进程号,执行 kill -9 <gdb进程号> 强制终止进程。

恢复调试并处理fork异常

  1. 先确认并修正GDB的fork跟踪配置:
    • 执行 set follow-fork-mode parent (明确跟踪父进程)
    • 执行 set detach-on-fork off (关闭子进程自动分离)
      配置完成后,用 show follow-fork-mode 和 show detach-on-fork 确认设置生效。
  2. 若当前已处于无响应状态,按Ctrl + C打断后,执行 continue(或缩写c)命令恢复调试流程。

在其他位置设置断点

  1. 按Ctrl + C让GDB回到交互状态,通过以下方式设置断点:
    • 按文件行号:break <文件名>:<行号>,例如 break main.c:45
    • 按函数名:break <函数名>,例如 break handle_request
    • 按内存地址:break *0x12345678
  2. 设置完成后,执行 continue 命令让程序运行到断点位置即可。

内容的提问来源于stack exchange,提问作者Cathy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:02:37