diff options
author | David Schulz <david.schulz@digia.com> | 2013-08-06 12:20:33 +0200 |
---|---|---|
committer | David Schulz <david.schulz@digia.com> | 2013-08-06 14:18:49 +0200 |
commit | 48f161641ab2fbec0cb1f9473aff830887c6a113 (patch) | |
tree | 8f6df1cab3785d4e6ed64e4d32eed32fa96ddf02 | |
parent | 85a1e3ca55c512d45817a0a7c79cd3900968abc4 (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.cpp | 5 |
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) == ' ') { |