diff options
| author | Deepak Panickal <deepak@codeplay.com> | 2014-08-08 16:47:42 +0000 |
|---|---|---|
| committer | Deepak Panickal <deepak@codeplay.com> | 2014-08-08 16:47:42 +0000 |
| commit | d249928b84c2fc11b0940d702288cbf4f7f2d332 (patch) | |
| tree | 15c9c86005af89960c902e4f24513d5e173d00a6 /lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp | |
| parent | caa565887d7a8701624534516308da497ae46078 (diff) | |
| download | bcm5719-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.cpp | 59 |
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. |

