Hacker News new | past | comments | ask | show | jobs | submit login

Yes, I've used this and it's great for anything where you want a C-stack backtrace.

As a variant, if you want a language-level backtrace in an interpreted language, you can:

- set up a signal handler which dumps a (perl, python, etc) level backtrace

- hit the program with the signal a few times




Great idea!

My Python server processes during testing handle 2 signals SIGUSR1 & SIGUSR2.

SIGUSR1 : runs guppy memory usage & leak profiling (http://guppy-pe.sourceforge.net/)

    import guppy
    _hpy = guppy.hpy()
    log(...,_hpy.heapu(),...)
    log(...,_hpy.heap(),...)
    log(..., <other _hpy info>...)
  
SIGUSR2 : open an interactive console using rconsole (http://code.google.com/p/rfoo/) and let me log and muck around with live object while the server process keeps running.[NOTE: don't use on production systems, it opens an RPC port that lets anyone control your process remotely!]

        from rfoo.utils import rconsole
        rconsole.spawn_server()
Then on the console:

         $ rconsole




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: