Mercurial > hg
view contrib/showstack.py @ 43255:b8d60845fa5d
copies: extract data extraction into a `revinfo` function
The function is build once at the beginning of the algorithm and used fetch
appropriate information for each revision.
This abstracts some implementation details from the main algorithm and will help
us to access the data more efficiently in future changesets.
Differential Revision: https://phab.mercurial-scm.org/D7070
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 02 Oct 2019 17:42:01 -0400 |
parents | 2372284d9457 |
children | 6000f5b25c9b |
line wrap: on
line source
# 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