[Lldb-commits] [PATCH] D47797: [lldb-mi] Re-implement MI -exec-next command.

Alexander Polyakov via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Jun 5 13:50:56 PDT 2018


polyakov.alex created this revision.
polyakov.alex added reviewers: aprantl, clayborg.
Herald added a subscriber: ki.stfu.

Now -exec-next command uses SB API for stepping over.


https://reviews.llvm.org/D47797

Files:
  lit/tools/lldb-mi/exec/exec-next.test
  lit/tools/lldb-mi/exec/inputs/main.c
  tools/lldb-mi/MICmdCmdExec.cpp


Index: tools/lldb-mi/MICmdCmdExec.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdExec.cpp
+++ tools/lldb-mi/MICmdCmdExec.cpp
@@ -22,6 +22,7 @@
 #include "lldb/API/SBCommandInterpreter.h"
 #include "lldb/API/SBProcess.h"
 #include "lldb/API/SBStream.h"
+#include "lldb/API/SBThread.h"
 #include "lldb/lldb-enumerations.h"
 
 // In-house headers:
@@ -378,12 +379,11 @@
 
   CMICmnLLDBDebugSessionInfo &rSessionInfo(
       CMICmnLLDBDebugSessionInfo::Instance());
-  lldb::SBDebugger &rDebugger = rSessionInfo.GetDebugger();
-  CMIUtilString strCmd("thread step-over");
+
   if (nThreadId != UINT64_MAX)
-    strCmd += CMIUtilString::Format(" %llu", nThreadId);
-  rDebugger.GetCommandInterpreter().HandleCommand(strCmd.c_str(), m_lldbResult,
-                                                  false);
+    rSessionInfo.GetProcess().GetThreadByID(nThreadId).StepOver();
+  else
+    rSessionInfo.GetProcess().GetSelectedThread().StepOver();
 
   return MIstatus::success;
 }
Index: lit/tools/lldb-mi/exec/inputs/main.c
===================================================================
--- /dev/null
+++ lit/tools/lldb-mi/exec/inputs/main.c
@@ -0,0 +1,4 @@
+int main(void) {
+  int x = 0;
+  return x;
+}
Index: lit/tools/lldb-mi/exec/exec-next.test
===================================================================
--- /dev/null
+++ lit/tools/lldb-mi/exec/exec-next.test
@@ -0,0 +1,21 @@
+# XFAIL: windows
+# -> llvm.org/pr24452
+#
+# RUN: %cc -o %t %p/inputs/main.c -g
+# RUN: %lldbmi %t < %s | FileCheck %s
+
+# Test lldb-mi -exec-next command.
+
+# Check that we have a valid target created via '%lldbmi %t'.
+# CHECK: ^done
+
+-break-insert main
+# CHECK: ^done,bkpt={number="1"
+
+-exec-run
+# CHECK: ^running
+# CHECK: *stopped,reason="breakpoint-hit"
+
+-exec-next
+# CHECK: ^running
+# CHECK: *stopped,reason="end-stepping-range"


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D47797.150035.patch
Type: text/x-patch
Size: 1891 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180605/38b865f5/attachment.bin>


More information about the lldb-commits mailing list