diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2020-05-27 19:02:07 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2020-05-27 19:02:07 +0200 |
commit | 5b0040185085704ea284cc7fdb6a95603caca203 (patch) | |
tree | 383315424e4595b1ecde6476c39f4fff50396602 /share/qtcreator | |
parent | 8c9aea6f11b6dee68fa8f16b7e791acd4d342ebe (diff) | |
parent | b193892fd1289bd8a995cd609ead33f925b75ee1 (diff) | |
download | qt-creator-5b0040185085704ea284cc7fdb6a95603caca203.tar.gz |
Merge remote-tracking branch 'origin/qds-1.50' into qds-1.59
Change-Id: If4869664ad4cbb5ec56e7c306f47d0bf0f1f075c
Diffstat (limited to 'share/qtcreator')
-rw-r--r-- | share/qtcreator/android/sdk_definitions.json | 4 | ||||
-rw-r--r-- | share/qtcreator/debugger/dumper.py | 11 | ||||
-rw-r--r-- | share/qtcreator/debugger/gdbbridge.py | 7 |
3 files changed, 14 insertions, 8 deletions
diff --git a/share/qtcreator/android/sdk_definitions.json b/share/qtcreator/android/sdk_definitions.json index 7bce8d6658..c88926b873 100644 --- a/share/qtcreator/android/sdk_definitions.json +++ b/share/qtcreator/android/sdk_definitions.json @@ -18,8 +18,8 @@ "specific_qt_versions": [ { "versions": ["default"], - "sdk_essential_packages": ["build-tools;29.0.2", "ndk-bundle"], - "ndk_path": "ndk-bundle" + "sdk_essential_packages": ["build-tools;29.0.2", "ndk;21.1.6352462"], + "ndk_path": "ndk/21.1.6352462" }, { "versions": ["5.12.[0-5]", "5.13.[0-1]"], diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index da8c322582..7df90b65db 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -39,7 +39,7 @@ try: # we do not need to hard fail in cases of partial python installation # that will never use this. import json -except ModuleNotFoundError: +except: print("Python module json not found. " "Native combined debugging might not work.") pass @@ -1089,6 +1089,10 @@ class DumperBase(): return '_ZN%sE' % ''.join(map(lambda x: '%d%s' % (len(x), x), typeName.split('::'))) + def arrayItemCountFromTypeName(self, typeName, fallbackMax=1): + itemCount = typeName[typeName.find('[') + 1:typeName.find(']')] + return int(itemCount) if itemCount else fallbackMax + def putCStyleArray(self, value): arrayType = value.type.unqualified() innerType = arrayType.ltarget @@ -1107,10 +1111,7 @@ class DumperBase(): # This should not happen. But it does, see QTCREATORBUG-14755. # GDB/GCC produce sizeof == 0 for QProcess arr[3] # And in the Nim string dumper. - s = value.type.name - itemCount = s[s.find('[') + 1:s.find(']')] - if not itemCount: - itemCount = '100' + itemCount = self.arrayItemCountFromTypeName(value.type.name, 100) arrayByteSize = int(itemCount) * innerType.size() n = arrayByteSize // innerType.size() diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index bcaf8ed314..ecc53a8f32 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -341,7 +341,12 @@ class Dumper(DumperBase): #DumperBase.warn('ARRAY') nativeTargetType = nativeType.target().unqualified() targetType = self.fromNativeType(nativeTargetType) - count = nativeType.sizeof // nativeTargetType.sizeof + if nativeType.sizeof == 0: + # QTCREATORBUG-23998, note that nativeType.name == None here, + # whereas str(nativeType) returns sth like 'QObject [5]' + count = self.arrayItemCountFromTypeName(str(nativeType), 1) + else: + count = nativeType.sizeof // nativeTargetType.sizeof return self.createArrayType(targetType, count) if code == gdb.TYPE_CODE_TYPEDEF: |