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

如何在Python的Pdb调试中自动打印断点处的变量值?

在Pdb断点处自动打印变量的方法

当然有办法,Pdb提供了两种常用方式实现断点触发时自动打印变量:

方法一:给断点绑定自动执行命令

通过commands命令为指定断点绑定要自动运行的指令,只有当该断点触发时才会执行这些命令:

  1. 先设置断点:
(Pdb) b 9
Breakpoint 1 at /tmp/program.py:9
  1. 输入commands + 断点编号(这里是1)进入命令编辑模式:
(Pdb) commands 1
  1. 在(com)提示符下输入要自动执行的打印命令,比如打印i:
(com) p i
  1. 输入end结束命令绑定:
(com) end

之后每次触发该断点时,就会自动打印变量值:

(Pdb) c
> /tmp/program.py(9)<module>()
-> b = compute(i)
i = 12
(Pdb) c
> /tmp/program.py(9)<module>()
-> b = compute(i)
i = 3

方法二:使用display全局跟踪变量

display命令会在程序每次暂停(包括断点触发、step/next执行暂停等)时自动显示指定变量的值,属于全局跟踪:

  1. 设置断点后,直接执行display命令跟踪目标变量:
(Pdb) b 9
Breakpoint 1 at /tmp/program.py:9
(Pdb) display i
display i: 12
  1. 执行continue后,每次停在断点都会自动显示变量:
(Pdb) c
> /tmp/program.py(9)<module>()
-> b = compute(i)
display i: 3
(Pdb) c
> /tmp/program.py(9)<module>()
-> b = compute(i)
display i: 4

如果要取消跟踪,执行undisplay i即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:12:10