目录

  • jupyter notebook中使用
  • b是动态设置断点。
  • args是打印函数参数
  • w是函数调用栈
  • Python pdb调试
  • 动态断点
  • 其他有用的


pdb调试

jupyter notebook中使用

link pdb的使用方式一样,在需要的地方插入import pdb; pdb.set_trace()即可:

ipdb在import引入后,添加set_trace()即可:

from IPython.core.debugger import set_trace
def test_breakpoint_with_ipdb():
    a = 1
    set_trace()
    b = 2
    c = 3
    final = a + b + c
    return final

test_breakpoint_with_ipdb()

b是动态设置断点。

单写b,是查看所有断点的状态。

clear 5 (5是断点标号)

删除断点后,就可以执行r返回了。

python使用pdb调试时怎么防止日志跳动 pdb 调试_调用栈

args是打印函数参数

w是函数调用栈

python使用pdb调试时怎么防止日志跳动 pdb 调试_函数调用_02

Python pdb调试

在需要断点调试的地方,加上:import pdb;pdb.set_trace()

n:[next] 让程序运行下一行,如果当前语句有一个函数调用,用’n’是不会进入被调用的函数体中的
c:[continue] 让程序正常运行,直到遇到断点
j:让程序跳转到指定的行数

l:列出当前将要运行的代码块
s:与n类似,但如果当前有一个函数调用,那么s会进入被调用的函数体中

a:打印当前函数的参数
p:打印某个变量(例如:p _new)

q:退出调试

h:打印当前版本pdb可用的命令,如果需要查询某个命令,可以输入 h [command]
Pdb aistudio

动态断点

去年刚接触pdb调试时,只会在当前运行的py文件中设置断点,就是运行程序后,b  192 在当前程序的第192行设置一个断点。但是往往同一个项目下会被调用的其他py文件,比如 同目录的config.py文件中想中断一下查看个变量什么的就不知如何操作。
b 查看所有断点cl 1 删除第一个断点

前段时间才明白是可以 用  b  config.py:192 来设置同项目下其他程序中的断点的,这样就可以方便地在程序运行的任意处中断来查看变量。

其他有用的

s(tep) 进入函数体中执行
r(eturn)运行完函数体
q 退出
l,j
a 函数传入的所有参数