Skip to main content

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.

Project details


Release history Release notifications

This version
History Node

0.1

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
tipper-0.1.tar.gz (4.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page