首页 > 运维 > linux运维 > 正文

pdb--python调试利器

星夢妙者
发布: 2025-07-18 11:08:30
原创
591人浏览过

一、调试模块

要调试模块,可以使用Python的pdb模块。以下是如何在模块中使用pdb的示例:

>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
> <string>(0)?()
(Pdb) continue
> <string>(1)?()
(Pdb) continue
NameError: 'spam'
> <string>(1)?()
(Pdb)
登录后复制

二、调试脚本

要调试脚本,可以使用Python的pdb模块启动调试器。以下是如何在脚本中使用pdb的示例:

python3 -m pdb myscript.py
登录后复制

三、代码中打堆栈(3.7版本内置了该功能)

立即学习Python免费学习笔记(深入)”;

在代码中设置断点并进入调试模式,可以使用以下命令:

import pdb;pdb.set_trace()
登录后复制

四、查看crashed program

如果程序崩溃,可以使用pdb查看崩溃时的堆栈信息。以下是如何在崩溃后使用pdb的示例:

白瓜面试
白瓜面试

白瓜面试 - AI面试助手,辅助笔试面试神器

白瓜面试40
查看详情 白瓜面试
>>> import pdb
>>> import mymodule
>>> mymodule.test()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "./mymodule.py", line 4, in test
    test2()
  File "./mymodule.py", line 3, in test2
    print(spam)
NameError: spam
>>> pdb.pm()
> ./mymodule.py(3)test2()
-> print(spam)
(Pdb)
登录后复制

五、主要函数

pdb--python调试利器

六、实现自定义功能可以修改pdb.Pdb类

可以通过修改pdb.Pdb类来实现自定义调试功能。例如,要跳过特定模块,可以这样做:

import pdb; pdb.Pdb(skip=['django.*']).set_trace()
登录后复制

七、调试命令

以下是pdb调试器中常用的命令:

  • h(elp) [command]:显示帮助信息或特定命令的帮助信息。
  • w(here):打印堆栈跟踪,最近的帧在底部。箭头指示当前帧。
  • d(own) [count]:将当前帧向下移动count级(默认为1级),进入较新的帧。
  • u(p)[count]:将当前帧向上移动count级(默认为1级),进入较旧的帧。
  • b(reak) [([filename:]lineno | function) [, condition]]:设置断点。
  • tbreak [([filename:]lineno | function) [, condition]]:设置临时断点。
  • cl(ear) [filename:lineno | bpnumber ...]:清除断点。
  • disable [bpnumber ...]:禁用断点。
  • enable [bpnumber ...]:启用断点。
  • ignore bpnumber [count]:设置断点的忽略计数。
  • condition bpnumber [condition]:为断点设置条件。
  • commands [bpnumber]:为断点指定命令列表。
  • s(tep):执行当前行,在第一次可能的场合停止。
  • n(ext):继续执行直到当前函数的下一行或返回。
  • unt(il) [lineno]:继续执行直到达到当前行号之后的行。
  • r(eturn):继续执行直到当前函数返回。
  • c(ont(inue)):继续执行,仅在遇到断点时停止。
  • j(ump) lineno:设置将要执行的下一行。
  • l(ist) [first[, last]]:列出当前文件的源代码。
  • ll | longlist:列出当前函数或帧的所有源代码。
  • a(rgs):打印当前函数的参数列表。
  • p expression:在当前上下文中评估表达式并打印其值。
  • pp expression:与p命令类似,但使用pprint模块进行美观打印。
  • whatis expression:打印表达式的类型。
  • source expression:尝试获取给定对象的源代码并显示。
  • display [expression]:每次在当前帧中停止执行时显示表达式的值。
  • undisplay [expression]:不在当前帧中显示表达式。
  • interact:启动一个交互式解释器。
  • alias [name [command]]:创建一个名为name的别名,执行command。
  • unalias name:删除指定的别名。
  • ! statement:在当前堆栈帧的上下文中执行语句。
  • run [args ...]:重新启动调试的Python程序。
  • restart [args ...]:restart是run的别名。
  • q(uit):退出调试器,终止正在执行的程序。
  • debug code:进入递归调试器,逐步执行代码参数。
  • retval:打印函数最后一次返回的返回值。

以上就是pdb--python调试利器的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号