python 逐行调试工具

编程入门 行业动态 更新时间:2024-10-18 01:42:24

python 逐行<a href=https://www.elefans.com/category/jswz/34/1766295.html style=调试工具"/>

python 逐行调试工具

1. 日志

通过日志或者print来打印变量。必要时可以打印locals()和globals()

建议使用logging.debug()来代替print,这样到了正式环境,就可以统一删除这些日志。

2.trace

Python有个trace模式,可以打印整个程序的执行流

# encoding=utf8

def f():

print 'aa'

if __name__ == '__main__':

f()

例如这段简单的程序,执行python -mtrace --trace test.py就会输出下面的日志:

--- modulename: test, funcname: # test模块,module级函数

test.py(2): def f(): #test.py的第2行,执行def f命令定义函数

test.py(6): if __name__ == '__main__':

test.py(7): f()

--- modulename: test, funcname: f

test.py(3): print 'aa'

aa

--- modulename: trace, funcname: _unsettrace

trace.py(80): sys.settrace(None)

可以详细得看到这代代码在Python中的执行流程。

当代码比较复杂,例如调用了一些第三方库,这个trace日志就会非常多,所以最好重定向到一个文件里面,慢慢分析。

3.PDB

# encoding=utf8

import pdb

def f2():

a = 1

pdb.set_trace() # 设置断点

b = 2

c = a + b

pdb.set_trace()

if __name__ == '__main__':

f2()

在代码里面设置断点。执行代码python -mpdb test.py,就可以调试程序了。进程会在断点处暂停运行,等待我们执行命令

(vsing_env) [root@www script]# python -mpdb test.py

> /data/selfmoe_backend/script/test.py(2)()

-> import pdb

(Pdb) c

> /data/selfmoe_backend/script/test.py(13)f2()

-> b=2

(Pdb) p a

1

(Pdb) l

8 cli=redis.Redis(host='127.0.0.1',port='6801')

9 cli.get('test')

10 def f2():

11 a=1

12 pdb.set_trace()

13 -> b=2

14 c=a+b

15 pdb.set_trace()

16 if __name__ == '__main__':

17 f2()

[EOF]

断点处可以执行的命令有:

c continue 继续

q quit 退出

l list 显示断点前后的源码

w or where 回溯执行到当前断点的过程

d down 回溯的下一页

u up 回溯的上一页

回车 重复最后一个命令,例如就不用一直按c,可以只按回车

其他分支

ipdb pdb的基础上增加颜色,自动补齐

pudb gui版本

winpdb 远程调试,在windows调试linux的进程

上面几个库的接口和pdb都是一样的。

4.Pycharm

使用Pycharm这个IDE进行调试。这个功能就比较强大了。

Pycharm也支持远程调试。也就是在windows界面操作,进程运行在linux。

方法是:

在Settings-Project Interpreter 里面点击Project Interpreter右边的配置,点击Add

选择SSH Interpreter

如果已有远程同步代码配置,就选择Existing Server configuration

否则就选择New server configuration ,设置远程机的IP和ssh端口和用户名,密码等

设置远程机的Python地址,例如/data/env/bin/python

设置Sync folders。这个是windows和远程机的目录映射,例如E://project映射到/data/project。那如果执行E://project/test.py脚本就相当于执行/data/project/test.py脚本

创建测试的脚本,test.py

打开Run-Edit Configurations,修改test.py的Python interpreter为刚才设置的Remote Python

点击 run test.py 就能在远程机执行这个脚本了,console会展示远程机的console

除了run,也可以debug

更多推荐

python 逐行调试工具

本文发布于:2024-02-17 03:39:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1692511.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:调试工具   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!