This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A utility for dumping stack traces of running Python processes

Project Description

Tipper is a small utility for dumping stack tracebacks of running Python processes.

Included is a module that, when imported, installs a signal handler for SIGUSR1. Running kill -SIGUSR1 [pid] will cause the process to dump the current stack trace of each thread to $TMPDIR/tipper-[unix timestamp]-[parent pid]-[pid].log.

Tipper can also be used as Django application, though it has no dependencies on Django itself.

Python 2.5 or newer is required. Python 3.x is also supported.

Download

Usage

To take Tipper for a test drive, first install Tipper:

$ pip install tipper

Set up a Python process to inspect:

$ 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

And send SIGUSR1 to it:

$ kill -SIGUSR1 945

You should end up with a file in $TMPDIR that looks like the following:

$ 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'>}

To get a briefer overview of the log, you can use 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)

News

Version 0.1 (Dec. 20, 2010)

  • Initial release.

Development

Download the official development repository using Mercurial:

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

Visit Bitbucket if you’d like to fork the project, watch for new changes, or report issues.

Release History

Release History

This version
History Node

0.1

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
tipper-0.1.tar.gz (4.0 kB) Copy SHA256 Checksum SHA256 Source Mar 31, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting