python标准库pdb——The Python Debugger

The Python Debugger

  • Python自带交互式源代码调试器,在代码中设置断点,单步执行。

调试脚本

  • 逐句调试
python -m pdb filename.py

方法

.run

  • 在调试器控制下执行语句。

.runeval

  • 在调试器控件下测试表达式(以字符串形式给出)。当runeval()返回时,它返回表达式的值。否则此功能类似于run()。

.runcall

  • 使用给定的参数调用函数

.set_trace()

  • 创建一个调试器。

.post_mortem

  • 输入给定回溯对象的事后调试。如果没有给出回溯,它将使用当前正在处理的异常之一(如果要使用默认值,则必须处理异常)。

.pm()

  • 输入在中找到的回溯的事后调试 sys.last_traceback。

调试器类

  • class pdb.Pdb(completekey=‘tab’, stdin=None, stdout=None, skip=None, nosigint=False, readrc=True)

Pdb 是调试器类。详细信息

调试器命令

  • h(elp) [command]

获得command的帮助信息。

  • w(here)

打印堆栈跟踪,当前堆栈

  • d(own)

打印下一个堆栈信息。

  • u( p )

打印上一个堆栈信息。

  • b(reak) [[filename:]lineno | function[, condition]]

使用lineno参数,在文件中设置中断,执行break。

  • tbreak [[filename:]lineno | function[, condition]]

临时断点,在第一次被击中时自动删除。参数与break相同。

  • cl(ear) [filename:lineno | bpnumber [bpnumber …]]

使用filename:lineno参数,清除此行的所有断点。

  • disable [bpnumber [bpnumber …]]

禁用以空格分隔的断点号列表给出的断点。禁用断点意​​味着它不能导致程序停止执行,但与清除断点不同,它会保留在断点列表中并可以(重新)启用。

  • enable [bpnumber [bpnumber …]]

启用指定的断点。

  • ignore bpnumber [count]

设置给定断点号的忽略计数。如果省略count,则忽略计数设置为0.当忽略计数为零时,断点将变为活动状态。当非零时,每次到达断点时计数都会递减,并且断点未被禁用且任何关联条件的计算结果为true。

  • condition bpnumber [condition]

Condition是一个表达式,在断点被接受之前必须求值为true。如果条件不存在,则删除任何现有条件; 即,断点是无条件的。

  • commands [bpnumber]

指定断点号bpnumber的命令列表。命令本身出现在以下行中。键入仅包含’end’的行以终止命令。

(Pdb) commands 1
(com) print some_variable
(com) end
(Pdb)
  • s(tep)

执行当前行,在第一个可能的场合停止(在被调用的函数中或在当前函数的下一行中停止)。

  • n(ext)

继续执行,直到达到当前函数中的下一行或返回。

  • unt(il)

继续执行,直到达到行号大于当前行的行或从当前帧返回。

  • r(eturn)

继续执行,直到当前函数返回。

  • c(ont(inue))

继续执行,仅在遇到断点时停止。

  • j(ump) lineno

设置将要执行的下一行。

  • l(ist) [first[, last]]

列出当前文件的源代码。

  • a(rgs)

打印当前函数的参数列表。

  • p expression

评估当前上下文中的表达式并打印其值。

  • pp expression

与p命令一样,除了表达式的值使用pprint模块进行漂亮打印。

  • alias [name [command]]

创建一个名为name的别名来执行命令。

  • unalias name

删除指定的别名。

  • [!]statement

在当前堆栈帧的上下文中执行(一行)语句。除非语句的第一个单词类似于调试器命令,否则可以省略感叹号。要设置全局变量,可以在赋值命令的global前面加上同一行的命令,例如:

(Pdb) global list_options; list_options = ['-l']
(Pdb)
  • run [args …]

重新启动调试的Python程序。

  • q(uit)

退出调试器。正在执行的程序被中止。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章