From e09867d7de8276e6a78b592fc8653d6241307614 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 14 Dec 2020 08:25:11 +0100 Subject: [PATCH] Debugger: Do not limit inferior output chunks to 1024 chars with LLDB Task-number: QTCREATORBUG-24667 Change-Id: Ie59db04b0c1e46c4c06a1761eee3859ae18bcf7f Reviewed-by: Andy Shaw Reviewed-by: David M. Cotter Reviewed-by: Eike Ziller --- share/qtcreator/debugger/lldbbridge.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 1a61068aaa5..9b921f69060 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1464,17 +1464,19 @@ class Dumper(DumperBase): elif eventType == lldb.SBProcess.eBroadcastBitInterrupt: # 2 pass elif eventType == lldb.SBProcess.eBroadcastBitSTDOUT: - # FIXME: Size? - msg = self.process.GetSTDOUT(1024) - if msg is not None: - self.report('output={channel="stdout",data="%s"}' % self.hexencode(msg)) + self.handleInferiorOutput(self.process.GetSTDOUT, "stdout") elif eventType == lldb.SBProcess.eBroadcastBitSTDERR: - msg = self.process.GetSTDERR(1024) - if msg is not None: - self.report('output={channel="stderr",data="%s"}' % self.hexencode(msg)) + self.handleInferiorOutput(self.process.GetSTDERR, "stderr") elif eventType == lldb.SBProcess.eBroadcastBitProfileData: pass + def handleInferiorOutput(self, proc, channel): + while True: + msg = proc(1024) + if msg == None or len(msg) == 0: + break + self.report('output={channel="%s",data="%s"}' % (channel, self.hexencode(msg))) + def describeBreakpoint(self, bp): isWatch = isinstance(bp, lldb.SBWatchpoint) if isWatch: