summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorhjk <hjk@theqtcompany.com>2015-05-29 08:23:52 +0200
committerhjk <hjk@theqtcompany.com>2015-06-11 08:40:51 +0000
commit7c8d20ded74bbeab6249b81b34f7078f3f385a81 (patch)
tree07429c180c8f1de1902373868c60de4331f97ace /share
parenta96894049482555c714074d717f1470b1d08770f (diff)
downloadqt-creator-7c8d20ded74bbeab6249b81b34f7078f3f385a81.tar.gz
Debugger: Pass request to sort struct members to {gdb,lldb}bridge.py
The request will be honored when creating the values instead of re-sorting in the frontend. Change-Id: I0ea13bd9b0700a4d2ae4f0b355c56ddd37557398 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/debugger/gdbbridge.py6
-rw-r--r--share/qtcreator/debugger/lldbbridge.py9
2 files changed, 12 insertions, 3 deletions
diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py
index e96fe86d63..4c9216c381 100644
--- a/share/qtcreator/debugger/gdbbridge.py
+++ b/share/qtcreator/debugger/gdbbridge.py
@@ -262,6 +262,8 @@ class Dumper(DumperBase):
self.autoDerefPointers = int(args.get("autoderef", "0"))
self.partialUpdate = int(args.get("partial", "0"))
self.fallbackQtVersion = 0x50200
+ self.sortStructMembers = bool(args.get("sortStructMembers", True))
+
#warn("NAMESPACE: '%s'" % self.qtNamespace())
#warn("EXPANDED INAMES: %s" % self.expandedINames)
#warn("WATCHERS: %s" % self.watchers)
@@ -399,6 +401,7 @@ class Dumper(DumperBase):
# Don't bother. It's only supplementary information anyway.
pass
+ locals.sort(key = lambda item: item.name)
for item in locals:
value = self.downcast(item.value) if self.useDynamicType else item.value
with OutputSafer(self):
@@ -1143,6 +1146,9 @@ class Dumper(DumperBase):
def putFields(self, value, dumpBase = True):
fields = value.type.fields()
+ if self.sortStructMembers:
+ fields.sort(key = lambda field:
+ '[' + field.name if field.is_base_class else field.name)
#warn("TYPE: %s" % value.type)
#warn("FIELDS: %s" % fields)
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index 98d581543c..64fcf71dd6 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -1145,9 +1145,11 @@ class Dumper(DumperBase):
self.put('iname="%s",' % self.currentIName)
self.put('name="[%s]",' % child.name)
self.putItem(child)
- for i in xrange(m, n):
- #for i in range(n):
- child = value.GetChildAtIndex(i)
+
+ children = [value.GetChildAtIndex(i) for i in xrange(m, n)]
+ if self.sortStructMembers:
+ children.sort(key = lambda child: str(child.GetName()))
+ for child in children:
# Only needed in the QVariant4 test.
if int(child.GetLoadAddress()) == 0xffffffffffffffff:
typeClass = child.GetType().GetTypeClass()
@@ -1655,6 +1657,7 @@ class Dumper(DumperBase):
self.reportToken(args)
self.expandedINames = set(args.get('expanded', []))
self.autoDerefPointers = int(args.get('autoderef', '0'))
+ self.sortStructMembers = bool(args.get("sortStructMembers", True));
self.useDynamicType = int(args.get('dyntype', '0'))
self.useFancy = int(args.get('fancy', '0'))
self.passExceptions = int(args.get('passexceptions', '0'))