Andrew Burgess
0af2f23333
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 >
2023-05-16 10:30:46 +01:00
..
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-03-27 08:37:14 -06:00
2023-01-01 17:01:16 +04:00
2023-02-09 19:38:52 +01:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-03-10 16:34:04 +01:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-02-28 15:50:23 +01:00
2023-04-27 13:56:37 +01:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-03-10 16:34:04 +01:00
2023-03-10 16:34:04 +01:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-05-16 10:30:46 +01:00
2023-05-16 10:30:46 +01:00
2023-01-13 13:18:58 -07:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-03-10 16:34:04 +01:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-04-03 14:46:32 +01:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-05-13 18:10:05 +00:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-04-06 15:04:17 +01:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-02-27 13:28:32 -05:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-26 10:09:44 +01:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-26 18:28:31 -07:00
2023-01-01 17:01:16 +04:00
2023-04-27 13:56:38 +01:00
2023-02-27 13:28:32 -05:00
2023-01-26 18:28:32 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-02-27 13:28:32 -05:00
2023-01-13 13:18:58 -07:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-26 10:09:44 +01:00
2023-01-01 17:01:16 +04:00
2023-01-26 18:28:32 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-26 18:28:31 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-26 18:28:31 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-03-28 12:17:58 -06:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-22 14:27:49 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-02-27 15:46:31 -07:00
2023-02-27 15:46:31 -07:00
2023-02-27 15:46:31 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-25 09:02:11 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-05-06 10:38:31 -06:00
2023-05-06 10:38:31 -06:00
2023-02-27 13:28:32 -05:00
2023-01-01 17:01:16 +04:00
2023-01-26 18:28:32 -07:00
2023-01-01 17:01:16 +04:00
2023-04-07 10:26:02 +02:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-03-01 13:44:04 +01:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-02-27 13:28:32 -05:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-26 18:28:32 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-02-27 13:28:32 -05:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-26 18:28:32 -07:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-26 18:28:32 -07:00
2023-03-13 14:40:33 +01:00
2023-03-13 14:40:33 +01:00
2023-03-13 16:34:41 +01:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-04-06 14:57:32 +01:00
2023-04-18 12:11:03 -04:00
2023-01-19 13:44:13 +01:00
2023-01-19 13:44:13 +01:00
2023-01-01 17:01:16 +04:00
2023-01-13 13:18:58 -07:00
2023-05-11 12:09:10 -04:00
2023-05-11 12:09:10 -04:00
2023-05-11 12:09:10 -04:00
2023-01-01 17:01:16 +04:00
2023-02-15 20:56:52 +00:00
2023-02-10 23:49:19 +00:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-05-05 17:59:21 +01:00
2023-01-01 17:01:16 +04:00
2023-01-01 17:01:16 +04:00
2023-03-18 10:16:30 +01:00
2023-03-18 10:16:30 +01:00
2023-01-01 17:01:16 +04:00
2023-03-13 17:20:09 +01:00
2023-02-13 14:50:37 +00:00
2023-01-13 13:18:58 -07:00
2023-03-13 17:20:09 +01:00
2023-02-27 13:28:32 -05:00