Issue #13120: Allow to call pdb.set_trace() from thread.
Patch by Ilya Sandler.
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 6776a3f..8c7c12b 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -955,8 +955,15 @@
Continue execution, only stop when a breakpoint is encountered.
"""
if not self.nosigint:
- self._previous_sigint_handler = \
- signal.signal(signal.SIGINT, self.sigint_handler)
+ try:
+ self._previous_sigint_handler = \
+ signal.signal(signal.SIGINT, self.sigint_handler)
+ except ValueError:
+ # ValueError happens when do_continue() is invoked from
+ # a non-main thread in which case we just continue without
+ # SIGINT set. Would printing a message here (once) make
+ # sense?
+ pass
self.set_continue()
return 1
do_c = do_cont = do_continue