返回顶部

收藏

打印python进程堆栈

更多
import threading, sys, traceback

def dumpstacks(signal, frame):
    id2name = dict([(th.ident, th.name) for th in threading.enumerate()])
    code = []
    for threadId, stack in sys._current_frames().items():
        code.append("\n# Thread: %s(%d)" % (id2name.get(threadId,""), threadId))
        for filename, lineno, name, line in traceback.extract_stack(stack):
            code.append('File: "%s", line %d, in %s' % (filename, lineno, name))
            if line:
                code.append("  %s" % (line.strip()))
    print "\n".join(code)

import signal
signal.signal(signal.SIGQUIT, dumpstacks)

有关signal模块的使用请参考: https://docs.python.org/2/library/signal.html

标签:python,stacktrace,signal

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 博主 发表 2011-04-17 00:00:00 使用Django的一些小经验
  2. 博主 发表 2014-07-10 10:40:00 Python中使用signal带来的怪异问题
  3. Armin Ronacher 发表 2015-05-27 00:00:00 Rust for Python Programmers
  4. 老高 发表 2015-06-21 11:18:00 python中的cookielib的使用方法
  5. COS编辑部 发表 2015-06-28 07:48:28 COS访谈第十八期:陈天奇
  6. 妙音 发表 2015-07-03 02:16:23 apscheduler如何传递参数给job
  7. admin 发表 2015-07-06 06:08:50 Windows搭建Flask开发环境[转]
  8. 博主 发表 2015-07-06 00:00:00 Python学习笔记-面向对象篇
  9. 6david9 发表 2015-07-13 07:38:00 Python 脚本解析 ipa 文件
  10. ricky.bo 发表 2015-04-23 00:02:06 (译文)在docker容器中捕捉信号
  11. rfyiamcool 发表 2015-07-26 14:44:55 使用python实现分布式自增id算法
  12. Lok 发表 2015-04-13 11:28:50 Python字符串快速反转(str reverse)