forked from qt-creator/qt-creator
Debugger: Delay template argument retrieval from native types
For performance reasons. They are often not needed. Change-Id: I8a7bb03583b3ec2479a3691486c9c02f70ad014e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -199,7 +199,8 @@ class Dumper(DumperBase):
|
|||||||
if code == TypeCode.Enum:
|
if code == TypeCode.Enum:
|
||||||
tdata.enumDisplay = lambda intval, addr, form: \
|
tdata.enumDisplay = lambda intval, addr, form: \
|
||||||
self.nativeTypeEnumDisplay(nativeType, intval, form)
|
self.nativeTypeEnumDisplay(nativeType, intval, form)
|
||||||
tdata.templateArguments = self.listTemplateParameters(nativeType.name())
|
tdata.templateArguments = lambda: \
|
||||||
|
self.listTemplateParameters(nativeType.name())
|
||||||
self.registerType(typeId, tdata) # Fix up fields and template args
|
self.registerType(typeId, tdata) # Fix up fields and template args
|
||||||
return self.Type(self, typeId)
|
return self.Type(self, typeId)
|
||||||
|
|
||||||
|
@@ -3500,7 +3500,7 @@ class DumperBase():
|
|||||||
self.lalignment = None # Function returning alignment of this struct
|
self.lalignment = None # Function returning alignment of this struct
|
||||||
self.lbitsize = None
|
self.lbitsize = None
|
||||||
self.ltarget = None # Inner type for arrays
|
self.ltarget = None # Inner type for arrays
|
||||||
self.templateArguments = []
|
self.templateArguments = None
|
||||||
self.code = None
|
self.code = None
|
||||||
self.name = None
|
self.name = None
|
||||||
self.typeId = None
|
self.typeId = None
|
||||||
@@ -3629,7 +3629,7 @@ class DumperBase():
|
|||||||
tdata = self.typeData()
|
tdata = self.typeData()
|
||||||
if tdata is None:
|
if tdata is None:
|
||||||
return self.dumper.listTemplateParameters(self.typeId)
|
return self.dumper.listTemplateParameters(self.typeId)
|
||||||
return tdata.templateArguments
|
return tdata.templateArguments()
|
||||||
|
|
||||||
def templateArgument(self, position):
|
def templateArgument(self, position):
|
||||||
tdata = self.typeData()
|
tdata = self.typeData()
|
||||||
@@ -3644,8 +3644,8 @@ class DumperBase():
|
|||||||
#DumperBase.warn('RES: %s' % res.typeId)
|
#DumperBase.warn('RES: %s' % res.typeId)
|
||||||
return res
|
return res
|
||||||
#DumperBase.warn('TA: %s %s' % (position, self.typeId))
|
#DumperBase.warn('TA: %s %s' % (position, self.typeId))
|
||||||
#DumperBase.warn('ARGS: %s' % tdata.templateArguments)
|
#DumperBase.warn('ARGS: %s' % tdata.templateArguments())
|
||||||
return tdata.templateArguments[position]
|
return tdata.templateArguments()[position]
|
||||||
|
|
||||||
def simpleEncoding(self):
|
def simpleEncoding(self):
|
||||||
res = {
|
res = {
|
||||||
@@ -3983,7 +3983,7 @@ class DumperBase():
|
|||||||
tdata = self.TypeData(self)
|
tdata = self.TypeData(self)
|
||||||
tdata.name = typish
|
tdata.name = typish
|
||||||
tdata.typeId = typish
|
tdata.typeId = typish
|
||||||
tdata.templateArguments = self.listTemplateParameters(typish)
|
tdata.templateArguments = lambda: self.listTemplateParameters(typish)
|
||||||
if size is not None:
|
if size is not None:
|
||||||
tdata.lbitsize = 8 * size
|
tdata.lbitsize = 8 * size
|
||||||
if typish.endswith('*'):
|
if typish.endswith('*'):
|
||||||
|
@@ -421,7 +421,8 @@ class Dumper(DumperBase):
|
|||||||
self.nativeStructAlignment(nativeType)
|
self.nativeStructAlignment(nativeType)
|
||||||
tdata.lfields = lambda value: \
|
tdata.lfields = lambda value: \
|
||||||
self.listMembers(value, nativeType)
|
self.listMembers(value, nativeType)
|
||||||
tdata.templateArguments = self.listTemplateParameters(nativeType)
|
tdata.templateArguments = lambda: \
|
||||||
|
self.listTemplateParameters(nativeType)
|
||||||
self.registerType(typeId, tdata) # Fix up fields and template args
|
self.registerType(typeId, tdata) # Fix up fields and template args
|
||||||
# warn('CREATE TYPE: %s' % typeId)
|
# warn('CREATE TYPE: %s' % typeId)
|
||||||
#else:
|
#else:
|
||||||
|
@@ -488,7 +488,8 @@ class Dumper(DumperBase):
|
|||||||
self.nativeStructAlignment(nativeType)
|
self.nativeStructAlignment(nativeType)
|
||||||
tdata.lfields = lambda value: \
|
tdata.lfields = lambda value: \
|
||||||
self.listMembers(value, nativeType)
|
self.listMembers(value, nativeType)
|
||||||
tdata.templateArguments = self.listTemplateParametersHelper(nativeType)
|
tdata.templateArguments = lambda: \
|
||||||
|
self.listTemplateParametersHelper(nativeType)
|
||||||
elif code == lldb.eTypeClassFunction:
|
elif code == lldb.eTypeClassFunction:
|
||||||
tdata.code = TypeCode.Function
|
tdata.code = TypeCode.Function
|
||||||
elif code == lldb.eTypeClassMemberPointer:
|
elif code == lldb.eTypeClassMemberPointer:
|
||||||
|
Reference in New Issue
Block a user