Index: third_party/pexpect/tools/display-sighandlers.py |
diff --git a/third_party/pexpect/tools/display-sighandlers.py b/third_party/pexpect/tools/display-sighandlers.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f3559f72e31473ebf07b015996cdb470aaee0b17 |
--- /dev/null |
+++ b/third_party/pexpect/tools/display-sighandlers.py |
@@ -0,0 +1,24 @@ |
+#!/usr/bin/env python |
+# Displays all signals, their values, and their handlers. |
+from __future__ import print_function |
+import signal |
+FMT = '{name:<10} {value:<5} {description}' |
+ |
+# header |
+print(FMT.format(name='name', value='value', description='description')) |
+print('-' * (33)) |
+ |
+for name, value in [(signal_name, getattr(signal, signal_name)) |
+ for signal_name in dir(signal) |
+ if signal_name.startswith('SIG') |
+ and not signal_name.startswith('SIG_')]: |
+ try: |
+ handler = signal.getsignal(value) |
+ except ValueError: |
+ # FreeBSD: signal number out of range |
+ handler = 'out of range' |
+ description = { |
+ signal.SIG_IGN: "ignored(SIG_IGN)", |
+ signal.SIG_DFL: "default(SIG_DFL)" |
+ }.get(handler, handler) |
+ print(FMT.format(name=name, value=value, description=description)) |