forked from Imagelibrary/binutils-gdb
gdb
PR python/11145: * python/py-value.c: Include expression.h. (valpy_do_cast): New function. (valpy_cast): Use it. (valpy_dynamic_cast): New function. (valpy_reinterpret_cast): Likewise. (value_object_methods): Add dynamic_cast, reinterpret_cast. gdb/doc PR python/11145: * gdb.texinfo (Values From Inferior): Document dynamic_cast and reinterpret_cast methods. gdb/testsuite PR python/11145: * gdb.python/py-value.c (Base, Derived): New types. (base): New global. * gdb.python/py-value.exp (test_subscript_regression): Add dynamic_cast test.
This commit is contained in:
@@ -40,6 +40,16 @@ typedef struct s *PTR;
|
||||
enum e evalue = TWO;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
struct Base {
|
||||
virtual int x() { return 5; }
|
||||
};
|
||||
|
||||
struct Derived : public Base {
|
||||
};
|
||||
|
||||
Base *base = new Derived ();
|
||||
|
||||
void ptr_ref(int*& rptr_int)
|
||||
{
|
||||
return; /* break to inspect pointer by reference. */
|
||||
|
||||
@@ -374,6 +374,11 @@ proc test_subscript_regression {lang} {
|
||||
gdb_py_test_silent_cmd "python rptr = gdb.history(0)" \
|
||||
"Obtains value from GDB" 1
|
||||
gdb_test "python print rptr\[0\]" "2" "Check pointer passed as reference"
|
||||
|
||||
# Just the most basic test of dynamic_cast -- it is checked in
|
||||
# the C++ tests.
|
||||
gdb_test "python print bool(gdb.parse_and_eval('base').dynamic_cast(gdb.lookup_type('Derived').pointer()))" \
|
||||
True
|
||||
}
|
||||
|
||||
gdb_breakpoint [gdb_get_line_number "break to inspect struct and union"]
|
||||
|
||||
Reference in New Issue
Block a user