binutils-gdb/gdb/python
Andrew Burgess 66bd1b294d gdb/python: break dependencies between gdbpy_initialize_* functions
In a later commit in this series I will propose removing all of the
explicit gdbpy_initialize_* calls from python.c and replace these
calls with a more generic mechanism.

One of the side effects of this generic mechanism is that the order in
which the various Python sub-systems within GDB are initialized is no
longer guaranteed.

On the whole I don't think this matters, most of the sub-systems are
independent of each other, though testing did reveal a few places
where we did have dependencies, though I don't think those
dependencies were explicitly documented in a comment anywhere.

This commit removes the first dependency issue, with this and the next
commit, all of the implicit inter-sub-system dependencies will be
replaced by explicit dependencies, which will allow me to, I think,
clean up how the sub-systems are initialized.

The dependency is around the py_insn_type.  This type is setup in
gdbpy_initialize_instruction and used in gdbpy_initialize_record.
Rather than depend on the calls to these two functions being in a
particular order, in this commit I propose adding a new function
py_insn_get_insn_type.  This function will take care of setting up the
py_insn_type type and calling PyType_Ready.  This helper function can
be called from gdbpy_initialize_record and
gdbpy_initialize_instruction, and the py_insn_type will be initialized
just once.

To me this is better, the dependency is now really obvious, but also,
we no longer care in which order gdbpy_initialize_record and
gdbpy_initialize_instruction are called.

There should be no user visible changes after this commit.
2022-10-20 16:49:53 +01:00
..
lib/gdb gdb/disasm: better intel flavour disassembly styling with Pygments 2022-10-02 17:30:04 +01:00
py-all-events.def Add gdb.free_objfile event registry 2022-07-18 11:25:34 -06:00
py-arch.c Use registry in gdbarch 2022-08-04 13:28:04 -06:00
py-auto-load.c Unify gdb printf functions 2022-03-29 12:46:24 -06:00
py-block.c Rewrite registry.h 2022-07-28 14:16:50 -06:00
py-bpevent.c
py-breakpoint.c Use ui_out_redirect_pop in more places 2022-08-31 11:03:39 -06:00
py-cmd.c Use PyBool_FromLong 2022-06-23 09:27:30 -06:00
py-connection.c gdb/python: remove Python 2/3 compatibility macros 2022-03-23 07:42:57 -04:00
py-continueevent.c
py-disasm.c gdb/python: fix invalid use disassemble_info::stream 2022-07-25 19:26:24 +01:00
py-event-types.def Add gdb.free_objfile event registry 2022-07-18 11:25:34 -06:00
py-event.c
py-event.h Change GDB to use frame_info_ptr 2022-10-10 11:57:10 +02:00
py-events.h Use bool for evregpy_no_listeners_p 2022-06-03 10:35:30 -06:00
py-evtregistry.c Make 'import gdb.events' work 2022-07-05 10:28:39 -06:00
py-evts.c Make 'import gdb.events' work 2022-07-05 10:28:39 -06:00
py-exitedevent.c
py-finishbreakpoint.c Remove dead code from py-finishbreakpoint.c 2022-10-18 10:31:36 -06:00
py-frame.c Change GDB to use frame_info_ptr 2022-10-10 11:57:10 +02:00
py-framefilter.c Change GDB to use frame_info_ptr 2022-10-10 11:57:10 +02:00
py-function.c
py-gdb-readline.c
py-inferior.c Change GDB to use frame_info_ptr 2022-10-10 11:57:10 +02:00
py-infevents.c Change GDB to use frame_info_ptr 2022-10-10 11:57:10 +02:00
py-infthread.c gdb/python: remove Python 2/3 compatibility macros 2022-03-23 07:42:57 -04:00
py-instruction.c gdb/python: break dependencies between gdbpy_initialize_* functions 2022-10-20 16:49:53 +01:00
py-instruction.h gdb/python: break dependencies between gdbpy_initialize_* functions 2022-10-20 16:49:53 +01:00
py-lazy-string.c gdb: remove TYPE_TARGET_TYPE 2022-09-21 10:59:49 -04:00
py-linetable.c
py-membuf.c gdb/python: remove Python 2/3 compatibility macros 2022-03-23 07:42:57 -04:00
py-micmd.c Unify gdb printf functions 2022-03-29 12:46:24 -06:00
py-newobjfileevent.c Add gdb.free_objfile event registry 2022-07-18 11:25:34 -06:00
py-objfile.c gdb, python: use gdbarch_iterate_over_objfiles_in_search_order 2022-10-18 14:16:09 +02:00
py-param.c gdb/python: improve formatting of help text for user defined commands 2022-05-28 10:36:50 +01:00
py-prettyprint.c gdb: remove TYPE_LENGTH 2022-09-21 11:05:21 -04:00
py-progspace.c Rewrite registry.h 2022-07-28 14:16:50 -06:00
py-record-btrace.c gdb/python: remove Python 2/3 compatibility macros 2022-03-23 07:42:57 -04:00
py-record-btrace.h
py-record-full.c gdb/python: remove Python 2/3 compatibility macros 2022-03-23 07:42:57 -04:00
py-record-full.h
py-record.c gdb/python: break dependencies between gdbpy_initialize_* functions 2022-10-20 16:49:53 +01:00
py-record.h
py-ref.h
py-registers.c Fix crash in gdbpy_parse_register_id 2022-08-21 08:03:42 -06:00
py-signalevent.c gdb/python: remove Python 2/3 compatibility macros 2022-03-23 07:42:57 -04:00
py-stopevent.c
py-stopevent.h
py-symbol.c Change GDB to use frame_info_ptr 2022-10-10 11:57:10 +02:00
py-symtab.c Rewrite registry.h 2022-07-28 14:16:50 -06:00
py-threadevent.c
py-tui.c
py-type.c gdb: remove TYPE_LENGTH 2022-09-21 11:05:21 -04:00
py-unwind.c Change GDB to use frame_info_ptr 2022-10-10 11:57:10 +02:00
py-utils.c gdb/python: convert gdbpy_err_fetch to use gdbpy_ref 2022-06-15 09:44:54 +01:00
py-value.c gdb: remove TYPE_LENGTH 2022-09-21 11:05:21 -04:00
py-varobj.c Expose current 'print' settings to Python 2022-07-15 09:25:33 -06:00
py-xmethods.c gdb/python: remove Python 2/3 compatibility macros 2022-03-23 07:42:57 -04:00
python-config.py gdb/python-config: replace deprecated distutils.sysconfig 2022-09-01 04:51:33 -04:00
python-internal.h Change GDB to use frame_info_ptr 2022-10-10 11:57:10 +02:00
python.c gdb, python: use gdbarch_iterate_over_objfiles_in_search_order 2022-10-18 14:16:09 +02:00
python.h gdb, python: use gdbarch_iterate_over_objfiles_in_search_order 2022-10-18 14:16:09 +02:00