diff options
author | Jan Vrany <jan.vrany@labware.com> | 2025-02-04 13:56:49 +0000 |
---|---|---|
committer | Jan Vrany <jan.vrany@labware.com> | 2025-02-04 13:56:49 +0000 |
commit | 13dad2fefb26f1972145084d58d013f12d98c5d0 (patch) | |
tree | 6e027bb48ce2e4544ad9d14857b3f8c669865284 /gdb | |
parent | 30243af82d55050d4168090626dbc91a1c935159 (diff) | |
download | binutils-13dad2fefb26f1972145084d58d013f12d98c5d0.zip binutils-13dad2fefb26f1972145084d58d013f12d98c5d0.tar.gz binutils-13dad2fefb26f1972145084d58d013f12d98c5d0.tar.bz2 |
gdb/python: add void_type () method to gdb.Architecture object
This commit adds a new method to Python architecture objects that
returns a void type for that architecture.
This will be useful later to create types for function symbols created
using Python extension code.
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Approved-By: Andrew Burgess <aburgess@redhat.com>
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/NEWS | 3 | ||||
-rw-r--r-- | gdb/doc/python.texi | 4 | ||||
-rw-r--r-- | gdb/python/py-arch.c | 16 | ||||
-rw-r--r-- | gdb/testsuite/gdb.python/py-arch.exp | 4 |
4 files changed, 26 insertions, 1 deletions
@@ -157,6 +157,9 @@ binary-upload in qSupported reply ** Added gdb.Symbol.domain. Contains the domain of the symbol. + ** Added gdb.Architecture.void_type. Returns a gdb.Type representing "void" + type for that architecture. + * Debugger Adapter Protocol changes ** The "scopes" request will now return a scope holding global diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index 1e0fbdf..a682132 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -7193,6 +7193,10 @@ If the indicated type cannot be found, this function will throw a @code{ValueError} exception. @end defun +@defun Architecture.void_type () +This function returns a void type. +@end defun + @anchor{gdbpy_architecture_registers} @defun Architecture.registers (@r{[} reggroup @r{]}) Return a @code{gdb.RegisterDescriptorIterator} (@pxref{Registers In diff --git a/gdb/python/py-arch.c b/gdb/python/py-arch.c index f7e35a4..2bf6251 100644 --- a/gdb/python/py-arch.c +++ b/gdb/python/py-arch.c @@ -1,6 +1,6 @@ /* Python interface to architecture - Copyright (C) 2013-2024 Free Software Foundation, Inc. + Copyright (C) 2013-2025 Free Software Foundation, Inc. This file is part of GDB. @@ -318,6 +318,16 @@ archpy_integer_type (PyObject *self, PyObject *args, PyObject *kw) return type_to_type_object (type); } +/* Implementation of gdb.void_type. */ +static PyObject * +archpy_void_type (PyObject *self, PyObject *args) +{ + struct gdbarch *gdbarch; + ARCHPY_REQUIRE_VALID (self, gdbarch); + + return type_to_type_object (builtin_type (gdbarch)->builtin_void); +} + /* __repr__ implementation for gdb.Architecture. */ static PyObject * @@ -383,6 +393,10 @@ END_PC." }, "integer_type (size [, signed]) -> type\n\ Return an integer Type corresponding to the given bitsize and signed-ness.\n\ If not specified, the type defaults to signed." }, + { "void_type", (PyCFunction) archpy_void_type, + METH_NOARGS, + "void_type () -> type\n\ +Return a void Type." }, { "registers", (PyCFunction) archpy_registers, METH_VARARGS | METH_KEYWORDS, "registers ([ group-name ]) -> Iterator.\n\ diff --git a/gdb/testsuite/gdb.python/py-arch.exp b/gdb/testsuite/gdb.python/py-arch.exp index 14802ec..c76fc778 100644 --- a/gdb/testsuite/gdb.python/py-arch.exp +++ b/gdb/testsuite/gdb.python/py-arch.exp @@ -104,6 +104,10 @@ foreach_with_prefix test_data { {None None} \ "check 'signed' argument can handle non-bool type $bad_type" } +gdb_test "python print(arch.void_type())" \ + "void" \ + "get void type" + # Test for gdb.architecture_names(). First we're going to grab the # complete list of architecture names using the 'complete' command. set arch_names [] |