RPDB-让PDB(Python调试工具)支持远程调试功能
2015-05-19 14:51
537 查看
软件已更新,最新请查看:https://code.google.com/p/stonelab/wiki/pdbx
软件介绍
rpdb扩展了pdb,让pdb支持远程调试功能。使用了rpdb的python脚本在远程启动,本地通过telnet方式连接上rpdb提供的调试端口,接下来的操作和本地完全一致。
使用说明
下载wget https://stonelab.googlecode.com/files/rpdb-0.1.0.tar.gz
有两个文件:rpdb.py:扩展pdb的类库; example.py 演示程序
安装
将rpdb.py拷贝到PYTHONPATH即可,或者直接拷贝rpdb.py上内容到你的python脚本即可(程序非常小巧,30+代码行)
演示
pdb = Rpdb() # 类似于pdb=Pdb() pdb = Rpdb(8787) # 指定远程调试端口号 pdb.set_trace() #设置断点
如example.py中程序:
#!/usr/bin/python from rpdb import Rpdb from random import randint from time import sleep def add(i, j): r = i + j return r def main(): pdb = Rpdb() # pdb = Rpdb(9999) # debug port:9999 pdb.set_trace() while True: i = randint(1,10) j = randint(1,10) r = add(i, j) print r sleep(1) if __name__ == '__main__': main()
本地终端输入: telnet xxx.xxx.xxx.xxx 8787
telnet 127.0.0.1 8787 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. > /Users/stone/Tmp/baidu/rpdb/example.py(15)main() -> while True: (Pdb) l 10 11 def main(): 12 pdb = Rpdb() 13 # pdb = Rpdb(9999) # debug port:9999 14 pdb.set_trace() 15 -> while True: 16 i = randint(1,10) 17 j = randint(1,10) 18 r = add(i, j) 19 print r 20 sleep(1) (Pdb) n > /Users/stone/Tmp/baidu/rpdb/example.py(16)main() -> i = randint(1,10) (Pdb) b 19 Breakpoint 1 at /Users/stone/Tmp/baidu/rpdb/example.py:19 (Pdb) c > /Users/stone/Tmp/baidu/rpdb/example.py(19)main() -> print r (Pdb) p r 11 (Pdb) q Connection closed by foreign host.
操作和pdb完全一致。
PDB常用命令
命令 | 介绍 |
h(elp) command? | 输入h或者help 列出pdb支持的所有命令, h command? 介绍指定命令 |
w(here) | 列出当前调试所在行,一般会使用 l(ist) |
l(ist) [first[, last]] | 列出源代码信息 |
s(tep) | 进入函数体 |
n(ext) | 执行下一行代码 |
c(ont(inue)) | 继续,直到遇到下一个断点 |
r(eturn) | 执行到函数体结束那行 |
b(reak) | 设置断点,可以是代码行号,方法名, 还可以加进入条件 |
tbreak | 设置临时断点,进入一次后,自动消失 |
cl(ear) | 取消断点 |
disable | 让断点失效 |
enable | 让断点生效 |
ignore | 忽略断点n次 |
condition | 给断点添加条件,符合条件的才进入断点 |
j(ump) lineno | 跳掉指定行 |
a(rgs) | 打印函数体参数信息 |
p expression | 打印变量 |
pp expression | 同上,打印得漂亮一些 |
! statement | 执行代码,非常有用,可用来修改变量值 |
q(uit) | 退出调试(pdb的quit很黄很暴力) |
相关文章推荐
- Velt-0.2.6对Python远程调试的支持
- 【工具】如何在使用pc上的pycharm远程调试Ubuntu服务器上的python工程
- Python 调试工具 PDB
- PyChram工具pdb调试python代码
- vs2013下的python远程调试支持(1)
- Python调试工具pdb
- python的单步调试工具pdb
- vs2013下的python远程调试支持(2) :工程调试
- Python 调试工具 PDB
- vs2013下的python远程调试支持
- 一站式远程页面调试工具spy-debugger 2.0,已支持HTTPS
- 【转】python 调试工具 pdb的使用
- python调试工具pdb和ipdb的使用
- Python -- pdb调试工具
- pdb用法-Python 命令行调试工具
- 远程调试Python进程的小工具
- python调试工具pdb
- Kivy A to Z -- 给Kivy加上远程Python命令行调试功能
- python调试工具pdb
- python在Ubuntu系统下的调试工具pdb