Skip to content

Latest commit

 

History

History
69 lines (63 loc) · 1.91 KB

File metadata and controls

69 lines (63 loc) · 1.91 KB

python调测工具pdb

本文档记录python调试工具pdb的使用,一杯后续查阅。 注意,pdb不能调试子进程,需借助celery.contrib.pdb

启动

非侵入式方法
python3 -m pdb test.py
侵入式方法
import pdb;pdb.set_trace()

常用命令

  • 帮助命令
    help
        
  • 查看源码
    l/l 10 查看当前/指定位置前后11行源代码
    ll     查看当前函数或框架的所有源代码
        
  • 添加断点
    b        显示所有断点
    b lineno
    b filename:lineno 
    b functionname
        
  • 添加临时断点, 执行一次自动删除
    tbreak   显示所有临时断点
    tbreak lineno
    tbreak filename:lineno
    tbreak functionname
        
  • 清除断点
    cl
    cl filename:lineno
    cl bpnumber [bpnumber ...]
        
  • 打印变量
    p expression
        
  • 逐行调试命令
    s  执行下一行(能够进入函数体)
    n  执行下一行(不会进入函数体)
    r/return  执行下一行(在函数中时会直接执行到函数返回处)
        
  • 非逐行调试命令
    c  持续执行下去,直到遇到一个断点
    until lineno  持续执行直到运行到指定行(或遇到断点)
    j lineno      直接跳转到指定行(注意,被跳过的代码不执行)
        
  • 查看函数参数
    a  在函数中时打印函数的参数和参数的值
        
  • 打印变量类型
    whatis expression
        
  • 启动交互式解释器
    interact 使用当前代码的全局命名空间(使用ctrl+d返回pdb)
        
  • 打印堆栈信息
    w/where/bt
        
  • 退出pdb
    q
        

celery.contrib.pdb

from celery import task
from celery.contrib import rdb

@task()
def add(x, y):
    result = x + y
    rdb.set_trace()  # <- set break-point
    return result
待出现提示信息后,通过telnet连接进入调试界面
$ telnet localhost 6900

pudb

界面化,可以研究,感觉难操控