如何打印 Python 线程堆栈?

2021 年 4 月 27 日
 zhoudaiyu

现在线程占用 CPU 比较多,但是代码用的开源的,还没有理清逻辑,想直接在线 debug 一下线程。用什么工具好? GDB 、pyflame,还是其他什么工具?

2914 次点击
所在节点    Python
11 条回复
Kasumi20
2021 年 4 月 27 日
歪个楼。堆就是堆,栈就是栈,为什么栈要说成堆栈?
zhoudaiyu
2021 年 4 月 27 日
@Kasumi20 平时说习惯了,应该是栈
ch2
2021 年 4 月 27 日
@Kasumi20 #1 堆栈加在一起就是内存
786375312123
2021 年 4 月 27 日
pycharm 上 debugger 可以直接看 stack trace
zhoudaiyu
2021 年 4 月 27 日
@786375312123 额 是跑在服务器上的 websocket 服务 好像不能这么玩
786375312123
2021 年 4 月 27 日
@zhoudaiyu GDB 不也是 debugger 吗?而且我没听说过 gdb 支持 py 的
Pagliacii
2021 年 4 月 28 日
ruanimal
2021 年 4 月 28 日
@786375312123 支持的,其实就是 debug python 解释器
xingheng
2021 年 4 月 28 日
RTFM before your asking!
lcvs
2021 年 4 月 28 日
可以试试 py-spy,可以对正在运行中的程序进行采样分析
https://github.com/benfred/py-spy
zhoudaiyu
2021 年 4 月 28 日
@lcvs 这个太棒了,感谢感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/773689

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX