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

能否暂停已启动的Python脚本并查看变量值?

如何暂停运行中的Python脚本并查看变量值(无预先调试代码)

即使运行前没写调试逻辑,依然可以通过进程注入类的方法暂停脚本并查看变量,以下是几种可行方案:

方案1:用GDB触发PDB断点

  • 先找到目标Python脚本的进程ID(PID):
    ps aux | grep python  # 或者用 pgrep python
    
  • 用GDB附加到该进程:
    gdb -p <你的PID>
    
  • 在GDB命令行中执行以下代码,强制脚本触发PDB调试断点:
    call PyRun_SimpleString("import pdb; pdb.set_trace()")
    
  • 此时脚本会暂停,你可以在PDB交互环境中直接输入命令查看变量,比如:
    print 变量名
    locals()  # 查看当前局部变量
    globals()  # 查看全局变量
    
  • 调试完成后,输入c恢复脚本运行,输入q退出调试(会终止脚本)。

方案2:用pyrasite注入交互式Shell

  • 适用于Linux系统,先安装pyrasite:
    pip install pyrasite
    
  • 临时关闭系统的ptrace限制(否则可能无法注入):
    echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  • 注入交互式Python Shell到目标进程:
    pyrasite <你的PID>
    
  • 进入Shell后,直接输入变量名即可查看值,也可以用dir()遍历当前上下文的对象,调试完成后关闭Shell即可恢复脚本运行。

注意事项

  • 以上操作都会暂停脚本运行,调试期间脚本不会继续执行任务
  • 如果脚本是多线程/多进程模式,调试时要注意切换到目标线程(GDB中用info threads查看,thread <线程ID>切换)
  • 部分环境需要root权限才能执行进程附加或注入操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:52:02