pythonpdb调试方法分享
2023-06-13 09:15:16 时间
importpdb
defpdb_test(arg):
foriinrange(arg):
print(i)
returnarg
pdb.run("pdb_test(3)")
b函数名、行号:
打断点,b可以查询所有的断点。
(Pdb)bpdb_test
Breakpoint1atc:\users\plpcc\desktop\pdbtest.py:3
(Pdb)b
NumType DispEnb Where
breakpoint keepyes atc:\users\plpcc\desktop\pdbtest.py:3
c:
运行程序,直到遇到断点。
(Pdb)c
>c:\users\plpcc\desktop\pdbtest.py(4)pdb_test()
->foriinrange(arg):
l:
查看断点周围的代码
(Pdb)l
importpdb
B defpdb_test(arg):
-> foriinrange(arg):
print(i)
returnarg
pdb.run("pdb_test(3)")
a:
查看参数
(Pdb)a
arg=3
s,n:
单步运行,区别s会进入路径中的函数,n不会进入
p:
查看表达式的值
(Pdb)pi
condition:
条件断点,只有条件为true断点才命中
>c:\users\plpcc\desktop\pdbtest.py(5)pdb_test()
->print(i)
(Pdb)l
importpdb
defpdb_test(arg):
foriinrange(arg):
B-> print(i)
returnarg
pdb.run("pdb_test(3)")
[EOF]
(Pdb)b
NumType DispEnb Where
breakpoint keepyes atc:\users\plpcc\desktop\pdbtest.py:5
(Pdb)condition2i==1 //i==1时才触发断点2
Newconditionsetforbreakpoint2.
(Pdb)b
NumType DispEnb Where
breakpoint keepyes atc:\users\plpcc\desktop\pdbtest.py:5
stoponlyifi==1
(Pdb)c
//i==0直接打印未断住
>c:\users\plpcc\desktop\pdbtest.py(5)pdb_test()
->print(i) //触发断点,i==1
(Pdb)pi
bt:
查看调用堆栈
(Pdb)bt
c:\python33\lib\bdb.py(405)run()
->exec(cmd,globals,locals)
<string>(1)<module>()
>c:\users\plpcc\desktop\pdbtest.py(5)pdb_test()
->print(i)
r:
执行到函数返回
(Pdb)r
--Return--
>c:\users\plpcc\desktop\pdbtest.py(6)pdb_test()->3//代码位置、函数返回值->3
->returnarg //代码位置的语句
(Pdb)l
importpdb
defpdb_test(arg):
foriinrange(arg):
print(i)
-> returnarg
pdb.run("pdb_test(3)")
通过pdb.set_trace()在代码中指定位置嵌入一个断点,通常可以通过调试开关来控制
importpdb
__DEBUG__=True
defpdb_test(arg):
ifTrue==__DEBUG__:
pdb.set_trace()
foriinrange(arg):
print(i)
returnarg
pdb_test(3)
运行后在pdb.set_trace()位置被断住,当__DEBUG__=False,代码正常运行
>c:\users\plpcc\desktop\pdbtest.py(8)pdb_test()
->foriinrange(arg):
(Pdb)l
__DEBUG__=True
defpdb_test(arg):
ifTrue==__DEBUG__:
pdb.set_trace()
-> foriinrange(arg):
print(i)
returnarg
pdb_test(3)
[EOF]
通过pdb.pm()进行事后调试,可以跟踪异常程序最后的堆载信息:
Traceback(mostrecentcalllast):
File"C:\Users\plpcc\Desktop\pdbTest.py",line13,in<module>
pdb_test(3)
File"C:\Users\plpcc\Desktop\pdbTest.py",line10,inpdb_test
1/0
ZeroDivisionError:divisionbyzero
>>>importpdb
>>>pdb.pm()
>c:\users\plpcc\desktop\pdbtest.py(10)pdb_test()
->1/0
(Pdb)l
defpdb_test(arg):
ifTrue==__DEBUG__:
pdb.set_trace()
foriinrange(arg):
print(i)
-> 1/0
returnarg
pdb_test(3)
相关文章
- SAP UI5 SimpleForm 控件实例的初始化调试
- delphi XE5 调试DLL「建议收藏」
- 安卓模拟器打开开发者模式(USB调试)的方法
- react源码调试
- pycharm如何调试python程序_Pycharm断点调试Python程序的步骤方法
- 干货分享--animate如何使用usb口调试影片animate使用usb口调试影片方法{an资源分享}
- React源码学习进阶篇(一)新版React如何调试源码?
- 驱动开发:WinDBG 常用调试命令总结
- chrome安卓WebView调试出现空白页面的解决方案
- Python多进程代码调试工具
- 【Android 屏幕适配】异形屏适配 ② ( 需要异形屏适配情况 | 需要异形屏适配的 Android 系统版本 | 刘海屏状态判定 | 异形屏适配调试 - 华为云调试 )
- python-异常处理和错误调试-异步IO程序的调试方法(三)
- 让Linux程序调试更轻松:实用调试技巧(linux程序调试方法)
- 使用c Linux调试工具简化开发流程(clinux调试工具)
- 精通Linux内核调试技巧(linux内核调试方法)
- Linux下实现串口调试的方法(串口调试工具linux)
- 下载Linux的最佳调试工具:GDB(gdb下载linux)
- 查看Oracle数据库版本:一步步走进调试之旅(查看oracle数据库版本)
- 无法在Web服务器上启动调试。未将项目配置为进行调试
- Yii框架在页面输出执行sql语句以方便调试的实现方法
- js调试工具console.log()方法查看js代码的执行情况