def debug(sig, frame):
    """Interrupt running process, and provide a python prompt for
    interactive debugging."""
d = {'_frame': frame}
d.update(frame.f_globals)
d.update(frame.f_locals)
i = code.InteractiveConsole(d)
message = """Signal received : entering python shell.
Traceback:
"""
message += ''.join(traceback.format_stack(frame))
i.interact(message)

def listen():
    signal.signal(signal.SIGUSR1, debug)
Отображение трассировки стека из работающего приложения Python