q 退出debug h 打印可用的调试命令 b 设置断点,b 5 在第五行设置断点 h command 打印command的命令含义 disable codenum 使某一行断点失效 enable codenum 使某一行的断点有效 condition codenum xxx 针对断点设置条件 c 继续执行程序,直到下一个断点 n 执行下一行代码,如果当前语句有函数调用,则不会进入函数体中 s 执行下一行代码,但是s会进入函数 w 打印当前执行点的位置 j codenum 让程序跳转到指定的行 l 列出附近的源码 p 打印一个参数的值 a 打印当前函数及参数的值 回车 重复执行上一行
测试代码如下sum.py:
1 2 3 4 5 6 7 8 9 10
#/usr/bin/python
defadd_t( ): i=1 sum=0 for i inrange(1,5): sum=sum+i printsum if __name__ == '__main__': add_t()
调试过程如下:python -m pdb sum.py
n调试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
> /opt/sum.py(3)<module>() -> defadd_t( ): (Pdb) n > /opt/sum.py(9)<module>() -> if __name__ == '__main__': (Pdb) n > /opt/sum.py(10)<module>() -> add_t() (Pdb) n 1 3 6 10 --Return-- > /opt/sum.py(10)<module>()->None -> add_t() (Pdb) q
1 > /opt/sum.py(3)<module>() 2 -> defadd_t( ): (Pdb) s > /opt/sum.py(9)<module>() -> if __name__ == '__main__': (Pdb) s > /opt/sum.py(10)<module>() -> add_t() (Pdb) s --Call-- > /opt/sum.py(3)add_t() -> defadd_t( ): (Pdb) s > /opt/sum.py(4)add_t() -> i=1 (Pdb) s > /opt/sum.py(5)add_t() -> sum=0 (Pdb) s > /opt/sum.py(6)add_t() -> for i inrange(1,5): (Pdb) s > /opt/sum.py(7)add_t() -> sum=sum+i (Pdb) s > /opt/sum.py(8)add_t() -> printsum (Pdb) p i 1 (Pdb) p sum 1 (Pdb) s 1 > /opt/sum.py(6)add_t() -> for i inrange(1,5): (Pdb) s > /opt/sum.py(7)add_t() -> sum=sum+i (Pdb) s > /opt/sum.py(8)add_t() -> printsum (Pdb) p i 2 (Pdb) p sum 3 (Pdb)