aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2023-01-23 15:31:28 +0000
committerAndrew Burgess <aburgess@redhat.com>2023-05-16 10:30:46 +0100
commit0af2f233330024e0e9b4697d510c7030e518e64c (patch)
tree05d86455324863c179d309da8dbc6d7c55d38ffc /gdb/doc
parent56c1f748a5df6d0f7c75586204e3010fa3e164f9 (diff)
downloadgdb-0af2f233330024e0e9b4697d510c7030e518e64c.zip
gdb-0af2f233330024e0e9b4697d510c7030e518e64c.tar.gz
gdb-0af2f233330024e0e9b4697d510c7030e518e64c.tar.bz2
gdb/python: rework how the disassembler API reads the result object
This commit is a refactor ahead of the next change which will make disassembler styling available through the Python API. Unfortunately, in order to make the styling support available, I think the easiest solution is to make a very small change to the existing API. The current API relies on returning a DisassemblerResult object to represent each disassembled instruction. Currently GDB allows the DisassemblerResult class to be sub-classed, which could mean that a user tries to override the various attributes that exist on the DisassemblerResult object. This commit removes this ability, effectively making the DisassemblerResult class final. Though this is a change to the existing API, I'm hoping this isn't going to cause too many issues: - The Python disassembler API was only added in the previous release of GDB, so I don't expect it to be widely used yet, and - It's not clear to me why a user would need to sub-class the DisassemblerResult type, I allowed it in the original patch because at the time I couldn't see any reason to NOT allow it. Having prevented sub-classing I can now rework the tail end of the gdbpy_print_insn function; instead of pulling the results out of the DisassemblerResult object by calling back into Python, I now cast the Python object back to its C++ type (disasm_result_object), and access the fields directly from there. In later commits I will be reworking the disasm_result_object type in order to hold information about the styled disassembler output. The tests that dealt with sub-classing DisassemblerResult have been removed, and a new test that confirms that DisassemblerResult can't be sub-classed has been added. Reviewed-By: Eli Zaretskii <eliz@gnu.org> Reviewed-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/doc')
-rw-r--r--gdb/doc/python.texi2
1 files changed, 2 insertions, 0 deletions
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index 1113591..a906c16 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -7032,6 +7032,8 @@ instance of this class should be returned from
@w{@code{Disassembler.__call__}} (@pxref{Disassembler Class}) if an
instruction was successfully disassembled.
+It is not possible to sub-class the @code{DisassemblerResult} class.
+
The @code{DisassemblerResult} class has the following properties and
methods: