This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug python/11777] New: Strange behaviour of gdb.Type.fields
- From: "andre dot poenitz at nokia dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: 1 Jul 2010 07:20:13 -0000
- Subject: [Bug python/11777] New: Strange behaviour of gdb.Type.fields
- Reply-to: sourceware-bugzilla at sourceware dot org
I sometimes cannot get a proper list of members from structures that do have
members:
This accesses a "real" QRegionPrivate object in a 'QRegion region;':
python print
gdb.parse_and_eval(\"region\")[\"d\"].dereference()[\"qt_rgn\"].dereference().type
-> struct myns::QRegionPrivate
python print
gdb.parse_and_eval(\"region\")[\"d\"].dereference()[\"qt_rgn\"].dereference().type.fields()
-> []
If I "create" the type manually I get:
python print gdb.parse_and_eval(\"('myns::QRegionPrivate'*)0\").dereference().type
-> myns::QRegionPrivate
python print gdb.parse_and_eval(\"('myns::QRegionPrivate'*)0
\").dereference().type.fields()
-> [<gdb.Field object at 0xb7764ac0>, <gdb.Field object at 0xb7764af0>,
<gdb.Field object at 0xb7764b20>, <gdb.Field object at 0xb7764b50>, <gdb.Field
object at 0xb7764b80>]
Note the extra "struct " in the 'type' output in the first case.
The problem also disappears when I use type = gdb.lookup_type(str(type))
before accessing fields().
--
Summary: Strange behaviour of gdb.Type.fields
Product: gdb
Version: 7.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: python
AssignedTo: unassigned at sourceware dot org
ReportedBy: andre dot poenitz at nokia dot com
CC: gdb-prs at sourceware dot org
GCC build triplet: i486-linux-gnu
GCC host triplet: i486-linux-gnu
GCC target triplet: i486-linux-gnu
http://sourceware.org/bugzilla/show_bug.cgi?id=11777
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.