Summary: | Provide access to the dynamic type of an object | ||
---|---|---|---|
Product: | gdb | Reporter: | Andre' <andre.poenitz> |
Component: | python | Assignee: | Tom Tromey <tromey> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | gdb-prs, tromey |
Priority: | P2 | ||
Version: | 7.1 | ||
Target Milestone: | 7.3 | ||
Host: | i486-linux-gnu | Target: | i486-linux-gnu |
Build: | i486-linux-gnu | Last reconfirmed: | 2010-08-23 17:58:14 |
Attachments: | proof-of-concept code, mainly copied code from a path triggered by 'set print object on' |
Description
Andre'
2010-07-06 16:00:15 UTC
Created attachment 4872 [details]
proof-of-concept code, mainly copied code from a path triggered by 'set print object on'
With the attached patch and adding
-ex 'python print "Python says: '%s'" % gdb.parse_and_eval("b").dynamic_type'
to the test script I get
Temporary breakpoint 1, main () at <stdin>:5
5 <stdin>: No such file or directory.
in <stdin>
6 in <stdin>
$1 = (Base *) 0x804b008
$2 = (Derived *) 0x804b008
Python says: Base *
Python says: Derived *
This patch looks pretty good. Do you have paperwork in place? If not, can you get it? (In reply to comment #2) > This patch looks pretty good. It's mostly original gdb code. > Do you have paperwork in place? Yes, there's one for the company. Subject: Bug 11792 CVSROOT: /cvs/src Module name: src Changes by: tromey@sourceware.org 2010-08-30 20:28:32 Modified files: gdb : ChangeLog gdb/doc : ChangeLog gdb.texinfo gdb/python : py-value.c gdb/testsuite : ChangeLog gdb/testsuite/gdb.python: py-value.exp Log message: gdb 2010-08-30 Andre Poenitz <andre.poenitz@nokia.com> Tom Tromey <tromey@redhat.com> PR python/11792: * python/py-value.c (valpy_get_dynamic_type): New function. (value_object_getset): Add "dynamic_type". (valpy_get_type): Fail on error. gdb/doc PR python/11792: * gdb.texinfo (Values From Inferior): Document dynamic_type. gdb/testsuite PR python/11792: * gdb.python/py-value.exp (test_subscript_regression): Add dynamic_type test. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.12126&r2=1.12127 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/doc/ChangeLog.diff?cvsroot=src&r1=1.1106&r2=1.1107 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/doc/gdb.texinfo.diff?cvsroot=src&r1=1.759&r2=1.760 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/py-value.c.diff?cvsroot=src&r1=1.15&r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/ChangeLog.diff?cvsroot=src&r1=1.2432&r2=1.2433 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.python/py-value.exp.diff?cvsroot=src&r1=1.15&r2=1.16 Fix checked in. |