contrib/showstack.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 29 Sep 2021 01:23:10 +0200
changeset 48112 fabf687df0ff
parent 43076 2372284d9457
child 48875 6000f5b25c9b
permissions -rw-r--r--
dirstate-item: update the attribute documentation It was very outdated. We are about to change these attribute so we should has well have them documented so that the change get easier to grasp.

# showstack.py - extension to dump a Python stack trace on signal
#
# binds to both SIGQUIT (Ctrl-\) and SIGINFO (Ctrl-T on BSDs)
r"""dump stack trace when receiving SIGQUIT (Ctrl-\) or SIGINFO (Ctrl-T on BSDs)
"""

from __future__ import absolute_import, print_function
import signal
import sys
import traceback


def sigshow(*args):
    sys.stderr.write("\n")
    traceback.print_stack(args[1], limit=10, file=sys.stderr)
    sys.stderr.write("----\n")


def sigexit(*args):
    sigshow(*args)
    print('alarm!')
    sys.exit(1)


def extsetup(ui):
    signal.signal(signal.SIGQUIT, sigshow)
    signal.signal(signal.SIGALRM, sigexit)
    try:
        signal.signal(signal.SIGINFO, sigshow)
    except AttributeError:
        pass