[Lldb-commits] [lldb] r333844 - [lldb, lldm-mi] Fix hanging of -exec-run command.

Alexander Polyakov via lldb-commits lldb-commits at lists.llvm.org
Sun Jun 3 08:15:23 PDT 2018


Author: apolyakov
Date: Sun Jun  3 08:15:23 2018
New Revision: 333844

URL: http://llvm.org/viewvc/llvm-project?rev=333844&view=rev
Log:
[lldb, lldm-mi] Fix hanging of -exec-run command.

Summary: -exec-run command hanged in case of invalid or dummy target.

Reviewers: aprantl, stella.stamenova

Reviewed By: aprantl

Subscribers: ki.stfu, llvm-commits, lldb-commits

Differential Revision: https://reviews.llvm.org/D47678

Added:
    lldb/trunk/lit/tools/lldb-mi/exec/
    lldb/trunk/lit/tools/lldb-mi/exec/exec-run-wrong-binary.test
    lldb/trunk/lit/tools/lldb-mi/exec/lit.local.cfg
Modified:
    lldb/trunk/tools/lldb-mi/MICmdCmdExec.cpp

Added: lldb/trunk/lit/tools/lldb-mi/exec/exec-run-wrong-binary.test
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/tools/lldb-mi/exec/exec-run-wrong-binary.test?rev=333844&view=auto
==============================================================================
--- lldb/trunk/lit/tools/lldb-mi/exec/exec-run-wrong-binary.test (added)
+++ lldb/trunk/lit/tools/lldb-mi/exec/exec-run-wrong-binary.test Sun Jun  3 08:15:23 2018
@@ -0,0 +1,6 @@
+# RUN: %lldbmi < %s | FileCheck %s
+
+# Test that -exec-run command won't hang in case of wrong name of binary file.
+
+-file-exec-and-symbols name.exe
+# CHECK: ^error,msg="Command 'file-exec-and-symbols'. Target binary 'name.exe' is invalid.

Added: lldb/trunk/lit/tools/lldb-mi/exec/lit.local.cfg
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/tools/lldb-mi/exec/lit.local.cfg?rev=333844&view=auto
==============================================================================
--- lldb/trunk/lit/tools/lldb-mi/exec/lit.local.cfg (added)
+++ lldb/trunk/lit/tools/lldb-mi/exec/lit.local.cfg Sun Jun  3 08:15:23 2018
@@ -0,0 +1 @@
+config.suffixes = ['.test']

Modified: lldb/trunk/tools/lldb-mi/MICmdCmdExec.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdCmdExec.cpp?rev=333844&r1=333843&r2=333844&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdCmdExec.cpp (original)
+++ lldb/trunk/tools/lldb-mi/MICmdCmdExec.cpp Sun Jun  3 08:15:23 2018
@@ -99,6 +99,19 @@ bool CMICmdCmdExecRun::ParseArgs() {
 bool CMICmdCmdExecRun::Execute() {
   CMICmnLLDBDebugSessionInfo &rSessionInfo(
       CMICmnLLDBDebugSessionInfo::Instance());
+
+  {
+    // Check we have a valid target.
+    // Note: target created via 'file-exec-and-symbols' command.
+    lldb::SBTarget sbTarget = rSessionInfo.GetTarget();
+    if (!sbTarget.IsValid() ||
+        sbTarget == rSessionInfo.GetDebugger().GetDummyTarget()) {
+      SetError(CMIUtilString::Format(MIRSRC(IDS_CMD_ERR_INVALID_TARGET_CURRENT),
+                                     m_cmdData.strMiCmd.c_str()));
+      return MIstatus::failure;
+    }
+  }
+
   lldb::SBError error;
   lldb::SBStream errMsg;
   lldb::SBLaunchInfo launchInfo = rSessionInfo.GetTarget().GetLaunchInfo();




More information about the lldb-commits mailing list