diff --git a/share/qtcreator/dumper/lbridge.py b/share/qtcreator/dumper/lbridge.py index c2aefe7a74c..297b9b217d2 100644 --- a/share/qtcreator/dumper/lbridge.py +++ b/share/qtcreator/dumper/lbridge.py @@ -734,7 +734,7 @@ class Dumper: def reportLocation(self): thread = self.currentThread() - frame = thread.GetFrameAtIndex(0) + frame = thread.GetSelectedFrame() file = fileName(frame.line_entry.file) line = frame.line_entry.line self.report('location={file="%s",line="%s",addr="%s"}' % (file, line, frame.pc)) @@ -766,7 +766,9 @@ class Dumper: self.report('msg="No process"') else: thread = self.currentThread() - result = 'stack={current-thread="%s",frames=[' % thread.GetThreadID() + result = 'stack={current-frame="%s"' % thread.GetSelectedFrame().GetFrameID() + result += ',current-thread="%s"' % thread.GetThreadID() + result += ',frames=[' n = thread.GetNumFrames() if n > 4: n = 4 @@ -1196,8 +1198,9 @@ class Dumper: self.report('success="%d",output="%s",error="%s"' % (result.Succeeded(), result.GetOutput(), result.GetError())) - def activateFrame(self, frame): - self.handleCommand("frame select " + frame) + def activateFrame(self, args): + self.currentThread().SetSelectedFrame(args['index']) + self.reportData() def selectThread(self, thread): self.handleCommand("thread select " + thread) diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 71d9aa13898..5df12a7cc77 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -855,6 +855,9 @@ void LldbEngine::refreshStack(const GdbMi &stack) bool canExpand = stack["hasmore"].toInt(); debuggerCore()->action(ExpandStack)->setEnabled(canExpand); handler->setFrames(frames); + + int index = stack["current-frame"].toInt(); + handler->setCurrentIndex(index); } void LldbEngine::refreshRegisters(const GdbMi ®isters)