summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp
diff options
context:
space:
mode:
authorDeepak Panickal <deepak@codeplay.com>2014-08-08 16:47:42 +0000
committerDeepak Panickal <deepak@codeplay.com>2014-08-08 16:47:42 +0000
commitd249928b84c2fc11b0940d702288cbf4f7f2d332 (patch)
tree15c9c86005af89960c902e4f24513d5e173d00a6 /lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp
parentcaa565887d7a8701624534516308da497ae46078 (diff)
downloadbcm5719-llvm-d249928b84c2fc11b0940d702288cbf4f7f2d332.tar.gz
bcm5719-llvm-d249928b84c2fc11b0940d702288cbf4f7f2d332.zip
Add new MI commands, features and fixes to the lldb-mi driver.
- Can now load an executable directly as an argument. - Fixes towards supporting local debugging. - Fixes for stack-list-arguments, data-evaluate-expression, environment-cd, stack-list-locals, interpreter-exec. - Fix breakpoint event handling. - Support dynamic loading of libraries using the search paths provided by Eclipse. llvm-svn: 215223
Diffstat (limited to 'lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp')
-rw-r--r--lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp59
1 files changed, 56 insertions, 3 deletions
diff --git a/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp b/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp
index 29b0cf5fb79..d519875993f 100644
--- a/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp
+++ b/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp
@@ -22,6 +22,7 @@
// In-house headers:
#include "MICmnLLDBDebugSessionInfoVarObj.h"
#include "MICmnLLDBProxySBValue.h"
+#include "MICmnLLDBUtilSBValue.h"
// Instantiations:
const MIchar * CMICmnLLDBDebugSessionInfoVarObj::ms_aVarFormatStrings[] =
@@ -128,7 +129,19 @@ CMICmnLLDBDebugSessionInfoVarObj::CMICmnLLDBDebugSessionInfoVarObj( CMICmnLLDBDe
}
//++ ------------------------------------------------------------------------------------
-// Details: CMICmnLLDBDebugSessionInfoVarObj assignment opertator.
+// Details: CMICmnLLDBDebugSessionInfoVarObj move constructor.
+// Type: Method.
+// Args: vrwOther - (R) The object to copy from.
+// Return: None.
+// Throws: None.
+//--
+CMICmnLLDBDebugSessionInfoVarObj::CMICmnLLDBDebugSessionInfoVarObj( CMICmnLLDBDebugSessionInfoVarObj && vrwOther )
+{
+ MoveOther( vrwOther );
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: CMICmnLLDBDebugSessionInfoVarObj assignment operator.
// Type: Method.
// Args: vrOther - (R) The object to copy from.
// Return: CMICmnLLDBDebugSessionInfoVarObj & - Updated *this object.
@@ -142,7 +155,21 @@ CMICmnLLDBDebugSessionInfoVarObj & CMICmnLLDBDebugSessionInfoVarObj::operator= (
}
//++ ------------------------------------------------------------------------------------
-// Details: Copy the other instance of *this object to *this object.
+// Details: CMICmnLLDBDebugSessionInfoVarObj assignment operator.
+// Type: Method.
+// Args: vrwOther - (R) The object to copy from.
+// Return: CMICmnLLDBDebugSessionInfoVarObj & - Updated *this object.
+// Throws: None.
+//--
+CMICmnLLDBDebugSessionInfoVarObj & CMICmnLLDBDebugSessionInfoVarObj::operator= ( CMICmnLLDBDebugSessionInfoVarObj && vrwOther )
+{
+ MoveOther( vrwOther );
+
+ return *this;
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Copy the other instance of that object to *this object.
// Type: Method.
// Args: vrOther - (R) The object to copy from.
// Return: MIstatus::success - Functional succeeded.
@@ -167,8 +194,34 @@ bool CMICmnLLDBDebugSessionInfoVarObj::CopyOther( const CMICmnLLDBDebugSessionIn
}
//++ ------------------------------------------------------------------------------------
+// Details: Move that object to *this object.
+// Type: Method.
+// Args: vrwOther - (RW) The object to copy from.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
+//--
+bool CMICmnLLDBDebugSessionInfoVarObj::MoveOther( CMICmnLLDBDebugSessionInfoVarObj & vrwOther )
+{
+ // Check for self-assignment
+ if( this == &vrwOther )
+ return MIstatus::success;
+
+ CopyOther( vrwOther );
+ vrwOther.m_eVarFormat = eVarFormat_Natural;
+ vrwOther.m_eVarType = eVarType_Internal;
+ vrwOther.m_strName.clear();
+ vrwOther.m_SBValue.Clear();
+ vrwOther.m_strNameReal.clear();
+ vrwOther.m_strFormattedValue.clear();
+ vrwOther.m_strVarObjParentName.clear();
+
+ return MIstatus::success;
+}
+
+//++ ------------------------------------------------------------------------------------
// Details: CMICmnLLDBDebugSessionInfoVarObj destructor.
-// Type: Overridable.
+// Type: Overridden.
// Args: None.
// Return: None.
// Throws: None.
OpenPOWER on IntegriCloud