]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - gdb/testsuite/gdb.python/py-format-address.exp
Rewrite "python" command exception handling
authorTom Tromey <tromey@adacore.com>
Thu, 15 Feb 2024 20:14:43 +0000 (13:14 -0700)
committerTom Tromey <tromey@adacore.com>
Tue, 27 Feb 2024 16:46:31 +0000 (09:46 -0700)
commita207f6b3a384897be1dab081a0a9a206593029de
treeefd01c313bd5d3e926450662d0e799708a808198
parent8ee6f71b1a09f4077e22c840a16833518c56089a
Rewrite "python" command exception handling

The "python" command (and the Python implementation of the gdb
"source" command) does not handle Python exceptions in the same way as
other gdb-facing Python code.  In particular, exceptions are turned
into a generic error rather than being routed through
gdbpy_handle_exception, which takes care of converting to 'quit' as
appropriate.

I think this was done this way because PyRun_SimpleFile and friends do
not propagate the Python exception -- they simply indicate that one
occurred.

This patch reimplements these functions to respect the general gdb
convention here.  As a bonus, some Windows-specific code can be
removed, as can the _execute_file function.

The bulk of this change is tweaking the test suite to match the new
way that exceptions are displayed.  These changes are largely
uninteresting.  However, it's worth pointing out the py-error.exp
change.  Here, the failure changes because the test changes the host
charset to something that isn't supported by Python.  This then
results in a weird error in the new setup.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31354
Acked-By: Tom de Vries <tdevries@suse.de>
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
34 files changed:
gdb/doc/python.texi
gdb/python/lib/gdb/__init__.py
gdb/python/python.c
gdb/testsuite/gdb.ada/tasks.exp
gdb/testsuite/gdb.python/py-arch.exp
gdb/testsuite/gdb.python/py-block.exp
gdb/testsuite/gdb.python/py-breakpoint.exp
gdb/testsuite/gdb.python/py-connection.exp
gdb/testsuite/gdb.python/py-disasm.exp
gdb/testsuite/gdb.python/py-error.exp
gdb/testsuite/gdb.python/py-finish-breakpoint.exp
gdb/testsuite/gdb.python/py-format-address.exp
gdb/testsuite/gdb.python/py-format-string.exp
gdb/testsuite/gdb.python/py-frame.exp
gdb/testsuite/gdb.python/py-inferior.exp
gdb/testsuite/gdb.python/py-lazy-string.exp
gdb/testsuite/gdb.python/py-mi-cmd.exp
gdb/testsuite/gdb.python/py-missing-debug.exp
gdb/testsuite/gdb.python/py-objfile.exp
gdb/testsuite/gdb.python/py-parameter.exp
gdb/testsuite/gdb.python/py-pp-registration.exp
gdb/testsuite/gdb.python/py-progspace-events.exp
gdb/testsuite/gdb.python/py-progspace.exp
gdb/testsuite/gdb.python/py-record-btrace.exp
gdb/testsuite/gdb.python/py-record-full.exp
gdb/testsuite/gdb.python/py-template.exp
gdb/testsuite/gdb.python/py-thrhandle.exp
gdb/testsuite/gdb.python/py-type.exp
gdb/testsuite/gdb.python/py-unwind.exp
gdb/testsuite/gdb.python/py-value.exp
gdb/testsuite/gdb.python/python.exp
gdb/testsuite/gdb.python/tui-window-names.exp
gdb/testsuite/gdb.python/tui-window.exp
gdb/testsuite/lib/gdb-python.exp