gdb/
Add gdb.Value.is_optimized_out attribute. * python/python-value.c (valpy_get_is_optimized_out): New function. (value_object_getset): New variable. (value_object_type): Initialize tp_getset element. gdb/doc/ * gdb.texinfo (Values From Inferior): Document is_optimized_out attribute. gdb/testsuite/ * gdb.python/python-value.exp (test_value_in_inferior): Test gdb.Value.is_optimized_out attribute.
This commit is contained in:
parent
442ddf5987
commit
def2b0009c
@ -1,3 +1,11 @@
|
||||
2009-03-26 Thiago Jung Bauermann <bauerman@br.ibm.com>
|
||||
|
||||
Add gdb.Value.is_optimized_out attribute.
|
||||
* python/python-value.c (valpy_get_is_optimized_out): New
|
||||
function.
|
||||
(value_object_getset): New variable.
|
||||
(value_object_type): Initialize tp_getset element.
|
||||
|
||||
2009-03-26 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
Recognize missing DW_AT_location as <value optimized out>.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-03-26 Thiago Jung Bauermann <bauerman@br.ibm.com>
|
||||
|
||||
* gdb.texinfo (Values From Inferior): Document is_optimized_out
|
||||
attribute.
|
||||
|
||||
2009-03-25 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* observer.texi (thread_exit): Add "silent" parameter.
|
||||
|
@ -18325,13 +18325,23 @@ bar = some_val['foo']
|
||||
|
||||
Again, @code{bar} will also be a @code{gdb.Value} object.
|
||||
|
||||
For pointer data types, @code{gdb.Value} provides a method for
|
||||
dereferencing the pointer to obtain the object it points to.
|
||||
The following attribute is provided:
|
||||
|
||||
@table @code
|
||||
@cindex optimized out value in Python
|
||||
@defmethod Value is_optimized_out
|
||||
This read-only boolean attribute is true if the compiler optimized out
|
||||
this value, thus it is not available for fetching from the inferior.
|
||||
@end defmethod
|
||||
@end table
|
||||
|
||||
The following methods are provided:
|
||||
|
||||
@table @code
|
||||
@defmethod Value dereference
|
||||
This method returns a new @code{gdb.Value} object whose contents is
|
||||
the object pointed to by the pointer. For example, if @code{foo} is
|
||||
a C pointer to an @code{int}, declared in your C program as
|
||||
For pointer data types, this method returns a new @code{gdb.Value} object
|
||||
whose contents is the object pointed to by the pointer. For example, if
|
||||
@code{foo} is a C pointer to an @code{int}, declared in your C program as
|
||||
|
||||
@smallexample
|
||||
int *foo;
|
||||
@ -18375,6 +18385,7 @@ will be used, if the current language is able to supply one.
|
||||
The optional @var{errors} argument is the same as the corresponding
|
||||
argument to Python's @code{string.decode} method.
|
||||
@end defmethod
|
||||
@end table
|
||||
|
||||
@node Commands In Python
|
||||
@subsubsection Commands In Python
|
||||
|
@ -272,6 +272,18 @@ valpy_str (PyObject *self)
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Implements gdb.Value.is_optimized_out. */
|
||||
static PyObject *
|
||||
valpy_get_is_optimized_out (PyObject *self, void *closure)
|
||||
{
|
||||
struct value *value = ((value_object *) self)->value;
|
||||
|
||||
if (value_optimized_out (value))
|
||||
Py_RETURN_TRUE;
|
||||
|
||||
Py_RETURN_FALSE;
|
||||
}
|
||||
|
||||
enum valpy_opcode
|
||||
{
|
||||
VALPY_ADD,
|
||||
@ -825,6 +837,13 @@ gdbpy_initialize_values (void)
|
||||
values_in_python = NULL;
|
||||
}
|
||||
|
||||
static PyGetSetDef value_object_getset[] = {
|
||||
{ "is_optimized_out", valpy_get_is_optimized_out, NULL,
|
||||
"Boolean telling whether the value is optimized out (i.e., not available).",
|
||||
NULL },
|
||||
{NULL} /* Sentinel */
|
||||
};
|
||||
|
||||
static PyMethodDef value_object_methods[] = {
|
||||
{ "address", valpy_address, METH_NOARGS, "Return the address of the value." },
|
||||
{ "dereference", valpy_dereference, METH_NOARGS, "Dereferences the value." },
|
||||
@ -897,7 +916,7 @@ PyTypeObject value_object_type = {
|
||||
0, /* tp_iternext */
|
||||
value_object_methods, /* tp_methods */
|
||||
0, /* tp_members */
|
||||
0, /* tp_getset */
|
||||
value_object_getset, /* tp_getset */
|
||||
0, /* tp_base */
|
||||
0, /* tp_dict */
|
||||
0, /* tp_descr_get */
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-03-26 Thiago Jung Bauermann <bauerman@br.ibm.com>
|
||||
|
||||
* gdb.python/python-value.exp (test_value_in_inferior): Test
|
||||
gdb.Value.is_optimized_out attribute.
|
||||
|
||||
2009-03-26 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.dwarf2/dw2-noloc-main.c: New file.
|
||||
|
@ -225,6 +225,9 @@ proc test_value_in_inferior {} {
|
||||
|
||||
# Check that the dereferenced value is sane
|
||||
gdb_test "python print arg0" "0x.*$testfile\"" "verify dereferenced value"
|
||||
|
||||
# Smoke-test is_optimized_out attribute
|
||||
gdb_test "python print 'result =', arg0.is_optimized_out" "= False" "Test is_optimized_out attribute"
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user