From 90de4bae40cb40a9c0ddcceaadf19b6df28be579 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 11 Aug 2017 18:02:49 +0200 Subject: [PATCH] Debugger: Hex-encode LLDB disassembler source lines for transport Unescaped quotes break the protocol. Task-number: QTCREATORBUG-18721 Change-Id: I235c4dc33e599769bc854423ef4a7dc6f46bf58e Reviewed-by: Alexandru Croitor --- share/qtcreator/debugger/lldbbridge.py | 2 +- src/plugins/debugger/lldb/lldbengine.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 800def2498e..9c85907f9a9 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1649,7 +1649,7 @@ class Dumper(DumperBase): result += '{line="%s"' % lineNumber result += ',file="%s"' % fileName if 0 < lineNumber and lineNumber <= len(source): - result += ',data="%s"' % source[lineNumber - 1] + result += ',hexdata="%s"' % self.hexencode(source[lineNumber - 1]) result += ',hunk="%s"}' % hunk result += '{address="%s"' % loadAddr result += ',data="%s %s"' % (insn.GetMnemonic(self.target), diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 96f848fb199..a844d982481 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -1019,6 +1019,7 @@ void LldbEngine::fetchDisassembler(DisassemblerAgent *agent) dl.data = line["rawdata"].data(); if (!dl.data.isEmpty()) dl.data += QString(30 - dl.data.size(), QLatin1Char(' ')); + dl.data += fromHex(line["hexdata"].data()); dl.data += line["data"].data(); dl.offset = line["offset"].toInt(); dl.lineNumber = line["line"].toInt();