pdb调试:https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/

rpdb远程调试:rpdb全称是remote debugger based on pdb这个干嘛用的,顾名思义,是一个可以远程调试python代码的python模块,基于pdb的基础上增加了额外的功能。

用起来也很简单,就像pdb一样。来看个例子:

[root@centos7 ~]# pip install rpdb  # 安装rpdb

例子1

[root@centos7 ~]# cat rpdb_1.py 
#!/usr/bin/env python
a = 2
b = 3
import rpdb;rpdb.set_trace()       # 入门用法
print a
[root@centos7 ~]# python rpdb_1.py   # 默认情况下监听在本地的4444端口上
pdb is running on 127.0.0.1:4444

[root@centos7 ~]# telnet localhost 4444  # telnet上去调试
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
> /root/rpdb_1.py(6)<module>()
-> print a
(Pdb)

例子2

[root@centos7 ~]# cat rpdb_2.py   # 改变socket监听的地址和端口
#!/usr/bin/env python
import rpdb
a = 2
b = 3
debugger = rpdb.Rpdb(addr='0.0.0.0',port=12345)  # 初始化一个Rpdb的实例,具体参数可以help(rpdb.Rpdb)查看
debugger.set_trace()
print a
[root@centos7 ~]# python rpdb_2.py 
pdb is running on 0.0.0.0:12345

[root@centos7 ~]# telnet 192.168.195.155 12345
Trying 192.168.195.155...
Connected to 192.168.195.155.
Escape character is '^]'.
> /root/rpdb_2.py(8)<module>()
-> print a
(Pdb) l
  3  import rpdb
  4  a = 2
  5  b = 3
  6  debugger = rpdb.Rpdb(addr='0.0.0.0',port=12345)
  7  debugger.set_trace()
  8  ->print a
  9  
[EOF]
(Pdb) pp b
3

rpdb模块官方介绍: https://pypi.python.org/pypi/rpdb/0.1.5