8sa1-binutils-gdb/gdb/python
Andrew Burgess 0f767f942b gdb/python: Add gdb.Architecture.registers method
This commit adds a new method gdb.Architecture.registers that returns
an object of the new type gdb.RegisterDescriptorIterator.  This
iterator returns objects of the new type gdb.RegisterDescriptor.

A RegisterDescriptor is not a way to read the value of a register,
this is already covered by Frame.read_register, a RegisterDescriptor
is simply a way to discover from Python, which registers are
available for a given architecture.

I did consider just returning a string, the name of each register,
instead of a RegisterDescriptor, however, I'm aware that it we don't
want to break the existing Python API in any way, so if I return just
a string now, but in the future we want more information about a
register then we would have to add a second API to get that
information.  By going straight to a descriptor object now, it is easy
to add additional properties in the future should we wish to.

Right now the only property of a register that a user can access is
the name of the register.

In future we might want to be able to ask the register about is
register groups, or its type.

gdb/ChangeLog:

	* Makefile.in (SUBDIR_PYTHON_SRCS): Add py-registers.c
	* python/py-arch.c (archpy_registers): New function.
	(arch_object_methods): Add 'registers' method.
	* python/py-registers.c: New file.
	* python/python-internal.h
	(gdbpy_new_register_descriptor_iterator): Declare.
	(gdbpy_initialize_registers): Declare.
	* python/python.c (do_start_initialization): Call
	gdbpy_initialize_registers.
	* NEWS: Mention additions to the Python API.

gdb/testsuite/ChangeLog:

	* gdb.python/py-arch-reg-names.exp: New file.

gdb/doc/ChangeLog:

	* python.texi (Python API): Add new section the menu.
	(Frames In Python): Add new @anchor.
	(Architectures In Python): Document new registers method.
	(Registers In Python): New section.
2020-07-06 15:06:06 +01:00
..
lib/gdb
py-all-events.def
py-arch.c gdb/python: Add gdb.Architecture.registers method 2020-07-06 15:06:06 +01:00
py-auto-load.c default-args: allow to define default arguments for aliases 2020-06-22 21:14:13 +02:00
py-block.c
py-bpevent.c
py-breakpoint.c
py-cmd.c default-args: allow to define default arguments for aliases 2020-06-22 21:14:13 +02:00
py-continueevent.c
py-event-types.def
py-event.c
py-event.h
py-events.h
py-evtregistry.c
py-evts.c
py-exitedevent.c
py-finishbreakpoint.c
py-frame.c
py-framefilter.c
py-function.c
py-gdb-readline.c
py-inferior.c
py-infevents.c
py-infthread.c
py-instruction.c
py-instruction.h
py-lazy-string.c
py-linetable.c
py-newobjfileevent.c
py-objfile.c
py-param.c default-args: allow to define default arguments for aliases 2020-06-22 21:14:13 +02:00
py-prettyprint.c
py-progspace.c
py-record-btrace.c
py-record-btrace.h
py-record-full.c
py-record-full.h
py-record.c
py-record.h
py-ref.h
py-registers.c gdb/python: Add gdb.Architecture.registers method 2020-07-06 15:06:06 +01:00
py-signalevent.c
py-stopevent.c
py-stopevent.h
py-symbol.c
py-symtab.c
py-threadevent.c
py-tui.c Fix crash when TUI window creation fails 2020-06-16 17:48:38 -06:00
py-type.c gdb: remove TYPE_FIELD_TYPE macro 2020-06-08 15:26:31 -04:00
py-unwind.c gdb/python: Add architecture method to gdb.PendingFrame 2020-07-06 15:06:05 +01:00
py-utils.c
py-value.c
py-varobj.c
py-xmethods.c
python-config.py
python-internal.h gdb/python: Add gdb.Architecture.registers method 2020-07-06 15:06:06 +01:00
python.c gdb/python: Add gdb.Architecture.registers method 2020-07-06 15:06:06 +01:00
python.h