type
status
date
slug
summary
tags
category
icon
password
comment_flag
SLUGS

简介

pdb 模块定义了一个交互式源代码调试器,用于 Python 程序。它支持在源码行间设置(有条件的)断点和单步执行,检视堆栈帧,列出源码列表,以及在任何堆栈帧的上下文中运行任意 Python 代码。它还支持事后调试,可以在程序控制下调用。
 

用法

启用pdb的方式

非侵入式(不修改源码,在命令行中启用)
侵入式(在需调试的源码中添加一行)

pdb指令

 
操作
指令
备注
查看源码list
l: 查看当前位置前后11行源代码(多次会翻页) ll: (longlist)查看当前函数或框架的所有源代码 l first: 列出first行周围11条代码 l first,second: 列出first--second范围的代码
当前位置在代码中会用-->这个符号标出来
添加断点break
b: 列出当前所有断点,和断点执行到统计次数 b lineno: 断点添加到哪一行 b filename:lineno: 断点添加到某文件的某一行 b functionname: 在函数执行的第一行设置断点
添加临时断点 temporary break
tbreak tbreak lineno tbreak filename:lineno tbreak functionname
相关操作同b
清除断点 clear
cl: 清除所有断点,会提示确认(包括临时断点) cl filename:lineno: 清除指定文件行的断点 cl bpnumber [bpnumber ...]: 清除指定序号的断点
bpnumber 断点序号(多个以空格分隔)
停用/激活/忽略断点
disable bpnumber: 停用断点,和cl的区别是,断点依然存在,只是不启用 enable bpnumber: 激活断点 ignore bpnumber [count]: 为指定的断点编号设置忽略次数。
如果省略 count,则忽略次数将设置为 0。
条件断点
condition bpnumber [condition]: 为断点设置一个新 condition,它是一个表达式,且它的计算值为 true 时断点才起作用。
如果没有给出 condition,则删除现有条件,也就是将断点设为无条件。
打印变量值 print
p expression pp expression: pretty print
逐行调试
s: (step)执行下一条命令 n: (next)执行下一条语句 r: (return)执行当前运行函数到结束
非逐行调试
c: (continue)继续执行,直到遇到下一条断点 unt lineno: (until)执行到指定行 j lineno: (jump)直接跳转到指定行(被跳过的代码不执行)
查看函数参数 args
a: 在函数中时打印当前函数的参数列表
打印变量类型
whatis expression
启动交互式解释器
interact: 启动一个python的交互式解释器,使用当前代码的全局命名空间(使用ctrl+d返回pdb)
打印堆栈信息 where
w: 打印堆栈信息,最新的帧在最底部。箭头表示当前帧。
退出pdb
q

参考

F.kl_div的输入为何一定要经softmax归一化《Temporal Interlacing Network》笔记
Loading...