[New-bugs-announce] [issue20269] Inconsistent behavior in pdb when pressing Ctrl-C

Xavier de Gaye report at bugs.python.org
Wed Jan 15 10:28:52 CET 2014


New submission from Xavier de Gaye:

With this script:
# START
def foo():
    while 1:
        pass

import pdb; pdb.set_trace()
foo()
# END

The following sequence of pdb commands aborts the script with a KeyboardInterrupt exception:
  next
  Ctrl-C
  continue

While the equivalent following sequence of commands allows the debugging session to continue as
expected:
  continue
  Ctrl-C
  continue

The first sequence of commands should behave as the second one.

A related problem is that the original SIGINT handler (named _previous_sigint_handler in the code)
is not restored when the program being debugged is stopped at a breakpoint that has been reached
after 'continue'.  _previous_sigint_handler is lost forever in this case when the user hits
'continue' after stopping at that breakpoint, which is quite common. This is annoying. For example,
trying to extend pdb with a 'detach' command that enables the debuggee to run freely after the
debugging session is terminated: the program cannot be killed anymore with SIGINT when the above
case occurs.

The attached patch attempts to fix these problems.
After applying the attached patch, the behavior of the 'next, Ctrl-C, continue' sequence of commands
is still wrong: this is another bug logged at issue 14788 with a patch and a test. Applying patch
14788 fixes this.

----------
components: Library (Lib)
files: sigint.patch
keywords: patch
messages: 208151
nosy: georg.brandl, xdegaye
priority: normal
severity: normal
status: open
title: Inconsistent behavior in pdb when pressing Ctrl-C
type: behavior
versions: Python 3.5
Added file: http://bugs.python.org/file33478/sigint.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20269>
_______________________________________


More information about the New-bugs-announce mailing list