From 7a7dc867168ff0fbecafab5c8dbfa6e37d77f703 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 5 Sep 2021 09:51:08 +0300 Subject: [PATCH] GDB: Fix missing token on some responses COOKIE FOR TOKEN 0 ALREADY EATEN (InferiorStopOk). TWO RESPONSES FOR ONE COMMAND? Change-Id: I569a9715f073f3fbba71045f14fa30a06cd434e9 Reviewed-by: Christian Stenger Reviewed-by: hjk --- share/qtcreator/debugger/gdbbridge.py | 6 +++--- src/plugins/debugger/gdb/gdbengine.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index cb3210a8840..f020aac58a8 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -756,7 +756,7 @@ class Dumper(DumperBase): self.output += ',partial="%d"' % isPartial self.output += ',counts=%s' % self.counts self.output += ',timings=%s' % self.timings - self.reportResult(self.output) + self.reportResult(self.output, args) def parseAndEvaluate(self, exp): val = self.nativeParseAndEvaluate(exp) @@ -1449,7 +1449,7 @@ class Dumper(DumperBase): frame = frame.older() i += 1 - self.reportResult('stack={frames=[' + self.output + ']}') + self.reportResult('stack={frames=[' + self.output + ']}', args) def createResolvePendingBreakpointsHookBreakpoint(self, args): class Resolver(gdb.Breakpoint): @@ -1470,7 +1470,7 @@ class Dumper(DumperBase): def exitGdb(self, _): gdb.execute('quit') - def reportResult(self, result, args={}): + def reportResult(self, result, args): print('result={token="%s",%s}' % (args.get("token", 0), result)) def profile1(self, args): diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index fac1181af03..8ce13d52f9f 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -785,7 +785,7 @@ void GdbEngine::runCommand(const DebuggerCommand &command) } else { m_gdbProc.write(cmd.function.toUtf8() + "\r\n"); if (command.flags & NeedsFlush) - m_gdbProc.write("p 0\r\n"); + runCommand({"p 0"}); // Start Watchdog. if (m_commandTimer.interval() <= 20000)