Debugger: Shift typedef stripping into the only branch that needs it

Change-Id: I683d808059a82b7a80465a94cddb7b3b4a6af1b7
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
hjk
2013-04-05 13:16:47 +02:00
parent ec7738df7b
commit 1711dadb9c
2 changed files with 3 additions and 2 deletions

View File

@@ -136,8 +136,7 @@ try:
return gdb.history(0) return gdb.history(0)
def extractFields(value): def extractFields(value):
type = stripTypedefs(value.type) return value.type.fields()
return type.fields()
## Insufficient, see http://sourceware.org/bugzilla/show_bug.cgi?id=10953: ## Insufficient, see http://sourceware.org/bugzilla/show_bug.cgi?id=10953:
##fields = type.fields() ##fields = type.fields()
## Insufficient, see http://sourceware.org/bugzilla/show_bug.cgi?id=11777: ## Insufficient, see http://sourceware.org/bugzilla/show_bug.cgi?id=11777:

View File

@@ -1019,6 +1019,7 @@ class Dumper:
self.useDynamicType = "dyntype" in options self.useDynamicType = "dyntype" in options
self.useFancy = "fancy" in options self.useFancy = "fancy" in options
self.passExceptions = "pe" in options self.passExceptions = "pe" in options
#self.passExceptions = True
self.autoDerefPointers = "autoderef" in options self.autoDerefPointers = "autoderef" in options
self.partialUpdate = "partial" in options self.partialUpdate = "partial" in options
self.tooltipOnly = "tooltiponly" in options self.tooltipOnly = "tooltiponly" in options
@@ -1808,6 +1809,7 @@ class Dumper:
#warn(" ARTIFICIAL: %s" % field.artificial) #warn(" ARTIFICIAL: %s" % field.artificial)
if field.name is None: if field.name is None:
type = stripTypedefs(value.type)
innerType = type.target() innerType = type.target()
p = value.cast(innerType.pointer()) p = value.cast(innerType.pointer())
for i in xrange(type.sizeof / innerType.sizeof): for i in xrange(type.sizeof / innerType.sizeof):