[v4,0/4] Fix DAP pause bug

Message ID 20240227-py-simple-exc-v4-0-3341d342c126@adacore.com
Headers
Series Fix DAP pause bug |

Message

Tom Tromey Feb. 27, 2024, 2:45 p.m. UTC
  Tom de Vries pointed out that the DAP pause.exp test wasn't actually
testing interruption of Python.  Digging into this revealed that the
"python" and "source" commands don't handle Python exceptions in the
normal way (in gdb terms).

This series changes how these are implemented and fixes the original
problem that Tom pointed out.

Tested on x86-64 Fedora 38.

---
Changes in v4:
- Dropped the kfail patch
- Updated the documentation to reflect Python error behavior
- Link to v3: https://inbox.sourceware.org/gdb-patches/20240220-py-simple-exc-v3-0-a2825caa4b74@adacore.com

Changes in v3:
- Fix style.exp failure when Pygments is missing, pointed out by CI
- Link to v2: https://inbox.sourceware.org/gdb-patches/20240220-py-simple-exc-v2-0-c672f1984b4d@adacore.com

Changes in v2:
- Renamed new function in first patch
- Link to v1: https://inbox.sourceware.org/gdb-patches/20240216-py-simple-exc-v1-0-c275bcfb5e4a@adacore.com

---
Tom Tromey (4):
      Introduce read_remainder_of_file
      Fix formatting buglet in python.c
      Rewrite "python" command exception handling
      Use the .py file in gdb.dap/pause.exp

 gdb/doc/python.texi                               |   6 +-
 gdb/python/lib/gdb/__init__.py                    |  27 ------
 gdb/python/python.c                               | 111 +++++++++-------------
 gdb/testsuite/gdb.ada/tasks.exp                   |   8 +-
 gdb/testsuite/gdb.dap/pause.exp                   |   2 +-
 gdb/testsuite/gdb.python/py-arch.exp              |   2 +-
 gdb/testsuite/gdb.python/py-block.exp             |   4 +-
 gdb/testsuite/gdb.python/py-breakpoint.exp        |  18 ++--
 gdb/testsuite/gdb.python/py-connection.exp        |   8 +-
 gdb/testsuite/gdb.python/py-disasm.exp            |  32 +++----
 gdb/testsuite/gdb.python/py-error.exp             |   9 +-
 gdb/testsuite/gdb.python/py-finish-breakpoint.exp |   2 +-
 gdb/testsuite/gdb.python/py-format-address.exp    |  28 +++---
 gdb/testsuite/gdb.python/py-format-string.exp     |   8 +-
 gdb/testsuite/gdb.python/py-frame.exp             |  18 ++--
 gdb/testsuite/gdb.python/py-inferior.exp          |  24 ++---
 gdb/testsuite/gdb.python/py-lazy-string.exp       |   6 +-
 gdb/testsuite/gdb.python/py-mi-cmd.exp            |  40 ++++----
 gdb/testsuite/gdb.python/py-missing-debug.exp     |  16 ++--
 gdb/testsuite/gdb.python/py-objfile.exp           |   2 +-
 gdb/testsuite/gdb.python/py-parameter.exp         |  14 +--
 gdb/testsuite/gdb.python/py-pp-registration.exp   |   2 +-
 gdb/testsuite/gdb.python/py-progspace-events.exp  |   2 +-
 gdb/testsuite/gdb.python/py-progspace.exp         |   8 +-
 gdb/testsuite/gdb.python/py-record-btrace.exp     |   4 +-
 gdb/testsuite/gdb.python/py-record-full.exp       |   4 +-
 gdb/testsuite/gdb.python/py-template.exp          |   2 +-
 gdb/testsuite/gdb.python/py-thrhandle.exp         |   2 +-
 gdb/testsuite/gdb.python/py-type.exp              |  20 ++--
 gdb/testsuite/gdb.python/py-unwind.exp            |  24 ++---
 gdb/testsuite/gdb.python/py-value.exp             |  36 +++----
 gdb/testsuite/gdb.python/python.exp               |  10 +-
 gdb/testsuite/gdb.python/tui-window-names.exp     |  16 ++--
 gdb/testsuite/gdb.python/tui-window.exp           |   2 +-
 gdb/testsuite/lib/gdb-python.exp                  |   2 +-
 gdbsupport/filestuff.cc                           |  24 +++--
 gdbsupport/filestuff.h                            |   4 +
 37 files changed, 259 insertions(+), 288 deletions(-)
---
base-commit: 5998b4a287772756e33d311a570df080a4f6e051
change-id: 20240216-py-simple-exc-91903ca871f5

Best regards,
  

Comments

Tom Tromey Feb. 27, 2024, 4:56 p.m. UTC | #1
>>>>> "Tom" == Tom Tromey <tromey@adacore.com> writes:

Tom> Tom de Vries pointed out that the DAP pause.exp test wasn't actually
Tom> testing interruption of Python.  Digging into this revealed that the
Tom> "python" and "source" commands don't handle Python exceptions in the
Tom> normal way (in gdb terms).

Tom> This series changes how these are implemented and fixes the original
Tom> problem that Tom pointed out.

Tom> Tested on x86-64 Fedora 38.

I'm going to check this in now.

Tom