需求有点像精准测试 但没办法在 build 的时候插桩
想追踪这个已经运行起来的进程 某段时间的代码运行情况,执行了哪些行 哪些方法
求教 有什么好的办法吗
1
ysc3839 Dec 18, 2020 via Android
方法不知道,我只知道 Visual Studio 可以直接调试一个外部的 Python 进程。
|
2
charexcalibur Dec 18, 2020 |
3
caiji11 Dec 18, 2020
VizTracer 试试这个
|
4
zhangkunkyle Dec 18, 2020 pysnooper
|
5
fuckyoudolphin OP @charexcalibur 谢谢,但是这个 pyspy 貌似是对帧取样 实现不了对执行的每一行代码的监控
|
6
jones2000 Dec 18, 2020
代码打桩, 一般用来做测试代码覆盖率用的。 给一个测试版编译的时候在所有的分支都打上桩 跑完所有的测试, 统计触发了多少桩。应该是在生成 AST 的时候加桩的, 然后再跑。解释性的语言你可以先生成 AST 的时候加桩,然后再把加桩以后的 AST 转成 py. 再跑
|
7
atx Dec 18, 2020
最近也遇到类似问题,定时任务卡了好几天,正常情况应该几小时就完成
strace -p 能看到卡在 futex 系统调用, 但具体卡在 python 代码什么地方看不到, 这种场景用什么工具来看? |
9
todd7zhang Dec 21, 2020
注册 signal ? 接受信号,然后 sys._current_frames().items()拿到 stack, 再 traceback.extract_stack(stack) 拿到
filename, lineno, name, line |