aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJan Vrany <jan.vrany@labware.com>2025-02-04 13:56:49 +0000
committerJan Vrany <jan.vrany@labware.com>2025-02-04 13:56:49 +0000
commit13dad2fefb26f1972145084d58d013f12d98c5d0 (patch)
tree6e027bb48ce2e4544ad9d14857b3f8c669865284 /gdb
parent30243af82d55050d4168090626dbc91a1c935159 (diff)
downloadbinutils-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/NEWS3
-rw-r--r--gdb/doc/python.texi4
-rw-r--r--gdb/python/py-arch.c16
-rw-r--r--gdb/testsuite/gdb.python/py-arch.exp4
4 files changed, 26 insertions, 1 deletions
diff --git a/gdb/NEWS b/gdb/NEWS
index 401479e..33d7af8 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -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 []