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

求助:GDB一键附加千级并行进程获取回溯并正常detach的单行命令

解决GDB附加进程后未执行detach的问题
  • 问题根源:你之前的命令缺少-batch参数,GDB执行完回溯命令后会进入交互模式,不会自动执行detach并退出。
  • 修正后的单行命令:
    gdb -batch -p 1234 -ex 'thread apply all bt' -ex detach
    
    加上-batch后,GDB会以非交互模式运行,按顺序执行所有指定命令,完成后自动退出,detach操作就能正常执行。
  • 输出到文件的版本:
    gdb -batch -p 1234 -ex 'thread apply all bt' -ex detach > bt_process_1234.log 2>&1
    
    把标准输出和错误输出都重定向到日志文件,方便后续排查分析。
  • 针对超1000个进程的批量处理:
    如果要给所有相关进程生成回溯日志,可以用循环遍历进程ID,比如:
    for pid in $(pgrep -f "你的并行程序名称"); do
        gdb -batch -p $pid -ex 'thread apply all bt' -ex detach > bt_process_$pid.log 2>&1
    done
    
    替换你的并行程序名称为实际程序名,就能批量生成每个进程的回溯日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:32:02