python ray trace,关于查看python的trace的方法

lptrace本质上是基于GDB的,进入到进程内存空间,然后执行了一段python指令把当时的trace给print出来

使用工具:https://github.com/khamidou/lptrace

1、linux上很简单:

安装

yum install gdb

pip install lptrace

使用:

vagrant@precise32:/vagrant$ python -m SimpleHTTPServer 8080 &

[1] 1818

vagrant@precise32:/vagrant$ Serving HTTP on 0.0.0.0 port 8080 ...

vagrant@precise32:/vagrant$ sudo python lptrace -p 1818

...

fileno (/usr/lib/python2.7/SocketServer.py:438)

meth (/usr/lib/python2.7/socket.py:223)

fileno (/usr/lib/python2.7/SocketServer.py:438)

meth (/usr/lib/python2.7/socket.py:223)

_handle_request_noblock (/usr/lib/python2.7/SocketServer.py:271)

get_request (/usr/lib/python2.7/SocketServer.py:446)

accept (/usr/lib/python2.7/socket.py:201)

__init__ (/usr/lib/python2.7/socket.py:185)

verify_request (/usr/lib/python2.7/SocketServer.py:296)

process_request (/usr/lib/python2.7/SocketServer.py:304)

finish_request (/usr/lib/python2.7/SocketServer.py:321)

__init__ (/usr/lib/python2.7/SocketServer.py:632)

setup (/usr/lib/python2.7/SocketServer.py:681)

makefile (/usr/lib/python2.7/socket.py:212)

__init__ (/usr/lib/python2.7/socket.py:246)

makefile (/usr/lib/python2.7/socket.py:212)

__init__ (/usr/lib/python2.7/socket.py:246)

handle (/usr/lib/python2.7/BaseHTTPServer.py:336)

handle_one_request (/usr/lib/python2.7/BaseHTTPServer.py:301)

^CReceived Ctrl-C, quitting

vagrant@precise32:/vagrant$

You can see that the server is handling the request in real time! After pressing Ctrl-C, the trace is removed and the program execution resumes normally.

2、mac上有点复杂:关键我也没有尝试成功

设置方法参考:http://www.jianshu.com/p/ce2d77d7d1c4

https://sourceware.org/gdb/wiki/BuildingOnDarwin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值