Advertisement

Python 调试器 - ipdb

阅读量:

⚠️注意:该代码采用 ipdb 作为调试工具,在运行时不具备多线程支持。如果存在多个 worker,则需要将 worker 数量设置为 0 即可使用该功能。

ipdb 介绍

说明文档:ipdb

ipdb调试器支持带有语法着色的功能展示,并提供更优的回溯和内省功能体验;其交互界面与pdb模块一致。

使用方法:

安装 ipdb:

复制代码
    pip install ipdb

快速使用:

直接在代码里需要调试的地方,另起一行,写入:

复制代码
    import ipdb; ipdb.set_trace()

就可以选择设置一个断点,并且该程序会被暂停于该位置并进入 ipdb 调试环境

举例:
demo.py 文件为:

复制代码
    a = 5
    b = 6
    import ipdb; ipdb.set_trace()  # 使用 pdb.set_trace() 设置断点,自动暂停
    print(a+b)

在终端中:

复制代码
    > python demo.py
    > /Users/ruanhao/Documents/code_test/tempCodeRunnerFile.py(4)<module>()
      2 b = 6
      3 import ipdb; ipdb.set_trace()
    ----> 4 print(a+b)
    ipdb> p a    # p 即 print,打印变量 a
    5
    ipdb> p b    # 打印变量 b
    6
    ipdb> p a+b  # 打印 a+b 的结果
    11
    ipdb> q      # q 即 quit,退出 ipdb 调试环境

其他语法

复制代码
    l					# list,列出当前执行语句周围11条代码
    w					# where,打印当前执行堆栈(理解为程序执行的位置)
    a					# args,列出当前执行函数的参数
    
    n					# next,单步执行代码
    s					# step into 执行下一行(能够进入函数体)
    r					# return 执行当前运行函数到结束
    run					# 重新启动 debug,相当于 restart
    unt lineno			# until, lineno 是代码行号,持续执行直到运行到指定行(或遇到断点)
    
    p expression		# print,输出 expression 的值
    whatis expression	# 打印表达式的类型,常用来打印变量值
    
    q					# quit,推出程序
    c					# continue, 继续运行程序,直到下一个断点(breakpoint)
    interact			# 启动一个 python 的交互式解释器, 使用 ctrl+d 返回 ipdb

[1] Python 调试器之pdb - 永恒自由森林 - 博客园
[2] splinzer:10分钟教程掌握Python调试器pdb

全部评论 (0)

还没有任何评论哟~