pdb
模块定义了一个交互式源代码调试器,用于 Python 程序。它支持在源码行间设置(有条件的)断点和单步执行,检视堆栈帧,列出源码列表,以及在任何堆栈帧的上下文中运行任意 Python 代码。它还支持事后调试,可以在程序控制下调用。
用pdb调试有多种方式可选:
命令行
python3 -m pdb myscript.py
Python交互环境
>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
程序调用
一般是在程序中可能出现问题的地方,插入pdb.set_trace()
,程序运行到了pdb.set_trace()
处就会停止,然后输入调试命令,即可进行调试。
Example:
if __name__ == "__main__":
a = 1
import pdb
pdb.set_trace()
b = 2
c = a + b
print (c)
命令
作用
h(elp) [command]
不带参数时,显示可用的命令列表。
参数为 command 时,打印有关该命令的帮助。
b(reak)
设置断点。
如果带有 lineno 参数,则在当前文件相应行处设置一个断点。
如果带有 function 参数,则在该函数的第一条可执行语句处设置一个断点。
cl(ear)
清除断点
如果参数是 filename:lineno,则清除此行上的所有断点。
如果参数是空格分隔的断点编号列表,则清除这些断点。
如果不带参数,则清除所有断点。
s(tep)
执行当前行,在第一个可以停止的位置(在调用的函数中或在当前函数的下一行)停下。
n(ext)
继续运行,直到运行到当前函数的下一行,或当前函数返回为止。
r(eturn)
继续运行,直到当前函数返回。
l(ist) [first[, last]]
列出当前文件的源代码。
a(rgs)
打印当前函数的参数列表。打印当前函数的参数列表。
p expression
在当前上下文中运行表达式 expression 并打印它的值。
whatis expression
打印 expression 的类型。
q(uit)
退出调试器。 被执行的程序将被中止。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章