pdb命令行调试
再运行python文件时,加入pdb参数
$ python -m pdb examples/train.py Yolov2
l #查看运行到哪行代码
(Pdb) l
1 -> import os
2 import argparse
3 import logging as log
4 import time
5 from statistics import mean
6 import numpy as np
7 import torch
8 from torchvision import transforms as tf
9 from pprint import pformat
n #单步运行,跳过函数
s #单步运行,可进入函数
Pdb) s
> /home/os/window_share/jiadongfeng/docker/algo/ObjectDetection-OneStageDet/examples/train.py(3)<module>()
-> import logging as log
n #让程序运行下一行,如果当前语句有一个函数调用,用’n’是不会进入被调用的函数体中的
s #与n类似,但如果当前有一个函数调用,那么s会进入被调用的函数体中
p 变量 #查看变量值
b 行号 #断点设置到第几行
b #显示所有断点列表
j #让程序跳转到指定的行数
cl 断点号 #删除某个断点
cl #删除所有断点
c #跳到下一个断点
r #return当前函数
exit #退出
(Pdb) exit
[1]+ Killed python examples/train.py Yolov2
设置断点
在需要断点调试处,添加以下代码进行调试
import pdb
pdb.set_trace()
然后直接运行python程序
python examples/train.py Yolov2