用于转储运行python进程的堆栈跟踪的实用程序

tipper的Python项目详细描述


翻斗车是一种小型实用工具,用于倾倒 python进程。

包含的模块在导入时安装signal handler 对于SIGUSR1。运行kill -SIGUSR1 [pid]将导致进程 将每个线程的当前堆栈跟踪转储到 $TMPDIR/tipper-[unixtimestamp]-[parentpid]-[pid].log

翻车机也可以用作Django应用程序,尽管它没有 依赖于django本身。

需要Python2.5或更高版本。还支持Python3.x。

下载

用法

要进行试驾,请先安装翻斗:

$ pip install tipper

设置要检查的python进程:

$ cat > test.py <<EOF
> import os, sys, time, tipper
> sys.stdout.write('%s\n' % os.getpid())
> while True:
>     time.sleep(1)
> EOF
$ python test.py
945

然后发送SIGUSR1给它:

$ kill -SIGUSR1 945

最后应该在$TMPDIR中找到一个如下所示的文件:

$ cat "$TMPDIR/tipper-1292830152.19-681-945.log"
Date: 2010-12-20 18:29:12.192733
Parent process ID: 681
Process ID: 945

Traceback (thread 140048470763264):

  File "test.py", line 4, in <module>
    time.sleep(1)

      Arguments: <module>()
      Local variables:

      {'__builtins__': <module '__builtin__' (built-in)>,
       '__doc__': None,
       '__file__': 'test.py',
       '__name__': '__main__',
       '__package__': None,
       'os': <module 'os' from '/usr/lib/python2.6/os.pyc'>,
       'sys': <module 'sys' (built-in)>,
       'time': <module 'time' (built-in)>,
       'tipper': <module 'tipper' from '/usr/local/lib/python2.6/dist-packages/tipper/__init__.py'>}

要更简要地概述日志,可以使用grep:

$ grep -v '^      \|^$' "$TMPDIR/tipper-1292830152.19-681-945.log"
Date: 2010-12-20 18:29:12.192733
Parent process ID: 681
Process ID: 945
Traceback (thread 140048470763264):
  File "test.py", line 4, in <module>
    time.sleep(1)

新闻

版本0.1(2010年12月20日)

  • 初次发布。

开发

使用Mercurial

hg clone https://bitbucket.org/brodie/tipper

访问Bitbucket如果您想分叉项目,请注意新的 更改或报告问题。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中从本地文件系统导入文件   spring boot如何在Java SpringBoot项目中集成Olingo(Odata)   java查找连续数组中缺少的第k个元素(超过时间限制)   java为什么在mySql中插入1/2行时会得到2/4行   java不能在静态上下文中使用它   File Observer方法的java My onEvent()部分不起作用   java Netty NioSocketChannel在多线程写入时收到中断消息   java将文件夹与父文件夹一起复制   java我的TictaToe代码出了什么问题?如何检查已采取的措施?   java Swing JTable更新   java如何将cordinates查找为int   如何使用selenium和java在firefox中打开新的空选项卡   java Gradle构建输出Jar未运行   java没有GET/WEBINF/jsp/login的映射。jsp