mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 09:08:59 +00:00
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>
This commit is contained in:
3
gdb/NEWS
3
gdb/NEWS
@@ -88,6 +88,9 @@
|
||||
|
||||
** 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
|
||||
|
||||
@@ -7090,6 +7090,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
|
||||
|
||||
@@ -318,6 +318,18 @@ 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);
|
||||
|
||||
builtin_type (gdbarch);
|
||||
|
||||
return type_to_type_object (builtin_type (gdbarch)->builtin_void);
|
||||
}
|
||||
|
||||
/* __repr__ implementation for gdb.Architecture. */
|
||||
|
||||
static PyObject *
|
||||
@@ -383,6 +395,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 an void Type." },
|
||||
{ "registers", (PyCFunction) archpy_registers,
|
||||
METH_VARARGS | METH_KEYWORDS,
|
||||
"registers ([ group-name ]) -> Iterator.\n\
|
||||
|
||||
@@ -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 []
|
||||
|
||||
Reference in New Issue
Block a user