aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@digia.com>2013-08-06 12:20:33 +0200
committerDavid Schulz <david.schulz@digia.com>2013-08-06 14:18:49 +0200
commit48f161641ab2fbec0cb1f9473aff830887c6a113 (patch)
tree8f6df1cab3785d4e6ed64e4d32eed32fa96ddf02
parent85a1e3ca55c512d45817a0a7c79cd3900968abc4 (diff)
Debugger cdb: Fix dump of unsigned __int64 for cdb 6.11
The local variable output of unsigned __int64 differ between 6.11 and 6.2 6.11: 0x222`23456789 6.2: 0x00000222`23456789 So we must iterate over the value to find and remove the 64bit separator (`) instead of just expect it at the 10th character. Change-Id: I8017c83707b29fa0a510bf621e57e9da6895b63a Reviewed-by: hjk <hjk121@nokiamail.com>
-rw-r--r--src/libs/qtcreatorcdbext/symbolgroupnode.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libs/qtcreatorcdbext/symbolgroupnode.cpp b/src/libs/qtcreatorcdbext/symbolgroupnode.cpp
index 12e79b7372..a0f25a644d 100644
--- a/src/libs/qtcreatorcdbext/symbolgroupnode.cpp
+++ b/src/libs/qtcreatorcdbext/symbolgroupnode.cpp
@@ -842,8 +842,9 @@ static void fixValue(const std::string &type, std::wstring *value)
const bool isHexNumber = value->size() > 3 && value->compare(0, 2, L"0x") == 0 && isHexDigit(value->at(2));
if (isHexNumber) {
// Remove dumb 64bit separator
- if (value->size() > 10 && value->at(10) == L'`')
- value->erase(10, 1);
+ const size_t separator = value->find(L'`');
+ if (separator != std::wstring::npos)
+ value->erase(separator, 1);
const std::string::size_type firstNonNullDigit = value->find_first_not_of(L"0", 2);
// No on-null digits: plain null ptr.
if (firstNonNullDigit == std::string::npos || value->at(firstNonNullDigit) == ' ') {