summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-mi/MICmdCmdVar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-mi/MICmdCmdVar.cpp')
-rw-r--r--lldb/tools/lldb-mi/MICmdCmdVar.cpp111
1 files changed, 20 insertions, 91 deletions
diff --git a/lldb/tools/lldb-mi/MICmdCmdVar.cpp b/lldb/tools/lldb-mi/MICmdCmdVar.cpp
index f0977178145..346d6960076 100644
--- a/lldb/tools/lldb-mi/MICmdCmdVar.cpp
+++ b/lldb/tools/lldb-mi/MICmdCmdVar.cpp
@@ -32,13 +32,11 @@
#include <lldb/API/SBThread.h>
// In-house headers:
-#include "MICmnConfig.h"
#include "MICmdCmdVar.h"
#include "MICmnMIResultRecord.h"
#include "MICmnMIValueConst.h"
#include "MICmnLLDBDebugger.h"
#include "MICmnLLDBDebugSessionInfo.h"
-#include "MICmdArgContext.h"
#include "MICmdArgValNumber.h"
#include "MICmdArgValString.h"
#include "MICmdArgValThreadGrp.h"
@@ -46,6 +44,7 @@
#include "MICmdArgValOptionShort.h"
#include "MICmdArgValListOfN.h"
#include "MICmnLLDBProxySBValue.h"
+#include "MICmnLLDBUtilSBValue.h"
//++ ------------------------------------------------------------------------------------
// Details: CMICmdCmdVarCreate constructor.
@@ -60,6 +59,7 @@ CMICmdCmdVarCreate::CMICmdCmdVarCreate( void )
, m_nThreadId( 0 )
, m_strType( "??" )
, m_bValid( false )
+, m_strValue( "??" )
, m_constStrArgThread( "thread" )
, m_constStrArgThreadGroup( "thread-group" )
, m_constStrArgFrame( "frame" )
@@ -102,14 +102,7 @@ bool CMICmdCmdVarCreate::ParseArgs( void )
bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, false, true ) ) );
bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgFrameAddr, false, true ) ) );
bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgExpression, true, true, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
@@ -166,7 +159,7 @@ bool CMICmdCmdVarCreate::Execute( void )
m_strExpression = rStrExpression;
CMICmnLLDBDebugSessionInfo & rSessionInfo( CMICmnLLDBDebugSessionInfo::Instance() );
- m_strVarName = "unnamedvariable";
+ m_strVarName = "<unnamedvariable>";
if( bAutoName )
{
m_strVarName = CMIUtilString::Format( "var%u", CMICmnLLDBDebugSessionInfoVarObj::VarObjIdGet() );
@@ -182,14 +175,11 @@ bool CMICmdCmdVarCreate::Execute( void )
{
m_bValid = true;
m_nChildren = value.GetNumChildren();
- const MIchar * pCType = value.GetTypeName();
- m_strType = (pCType != nullptr) ? pCType : m_strType;
- }
-
- if( m_bValid )
- {
+ m_strType = CMICmnLLDBUtilSBValue( value ).GetTypeNameDisplay();
+
// This gets added to CMICmnLLDBDebugSessionInfoVarObj static container of varObjs
CMICmnLLDBDebugSessionInfoVarObj varObj( rStrExpression, m_strVarName, value );
+ m_strValue = varObj.GetValueFormatted();
}
return MIstatus::success;
@@ -214,9 +204,7 @@ bool CMICmdCmdVarCreate::Acknowledge( void )
const CMIUtilString strNumChild( CMIUtilString::Format( "%d", m_nChildren ) );
const CMICmnMIValueConst miValueConst2( strNumChild );
miValueResultAll.Add( "numchild", miValueConst2 );
- CMICmnLLDBDebugSessionInfoVarObj varObj;
- const bool bOk = CMICmnLLDBDebugSessionInfoVarObj::VarObjGet( m_strVarName, varObj ); MIunused( bOk );
- const CMICmnMIValueConst miValueConst3( varObj.GetValueFormatted() );
+ const CMICmnMIValueConst miValueConst3( m_strValue );
miValueResultAll.Add( "value", miValueConst3 );
const CMICmnMIValueConst miValueConst4( m_strType );
miValueResultAll.Add( "type", miValueConst4 );
@@ -225,7 +213,7 @@ bool CMICmdCmdVarCreate::Acknowledge( void )
miValueResultAll.Add( "thread-id", miValueConst5 );
const CMICmnMIValueConst miValueConst6( "0" );
miValueResultAll.Add( "has_more", miValueConst6 );
-
+
const CMICmnMIResultRecord miRecordResult( m_cmdData.strMiCmdToken, CMICmnMIResultRecord::eResultClass_Done, miValueResultAll );
m_miResultRecord = miRecordResult;
@@ -303,14 +291,7 @@ bool CMICmdCmdVarUpdate::ParseArgs( void )
{
bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValNumber( m_constStrArgPrintValues, false, false ) ) );
bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
@@ -609,14 +590,7 @@ CMICmdCmdVarDelete::CMICmdCmdVarDelete( void )
bool CMICmdCmdVarDelete::ParseArgs( void )
{
bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
@@ -726,14 +700,7 @@ bool CMICmdCmdVarAssign::ParseArgs( void )
{
bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, true, true ) ) );
bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgExpression, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
@@ -862,14 +829,7 @@ bool CMICmdCmdVarSetFormat::ParseArgs( void )
{
bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, true, true ) ) );
bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgFormatSpec, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
@@ -1008,14 +968,7 @@ bool CMICmdCmdVarListChildren::ParseArgs( void )
{
bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValNumber( m_constStrArgPrintValues, false, false ) ) );
bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
@@ -1051,13 +1004,10 @@ bool CMICmdCmdVarListChildren::Execute( void )
lldb::SBValue member = rValue.GetChildAtIndex( i );
if( !member.IsValid() )
continue;
-
- const MIchar * pExp = member.GetName();
- const CMIUtilString strExp = (pExp != nullptr) ? pExp : "??";
+ const CMICmnLLDBUtilSBValue utilValue( member );
+ const CMIUtilString strExp = utilValue.GetName();
const CMIUtilString name( CMIUtilString::Format( "%s.%s", rVarObjName.c_str(), strExp.c_str() ) );
const MIuint nChildren = member.GetNumChildren();
- const MIchar * pTypeName = member.GetType().GetName();
- const CMIUtilString strType = (pTypeName != nullptr) ? pTypeName : MIRSRC( IDS_WORD_UNKNOWNTYPE_BRKTS );
const CMIUtilString strThreadId( CMIUtilString::Format( "%u", member.GetThread().GetIndexID() ) );
// Varobj gets added to CMICmnLLDBDebugSessionInfoVarObj static container of varObjs
@@ -1074,7 +1024,7 @@ bool CMICmdCmdVarListChildren::Execute( void )
const CMICmnMIValueConst miValueConst3( strNumChild );
const CMICmnMIValueResult miValueResult3( "numchild", miValueConst3 );
miValueTuple.Add( miValueResult3 );
- const CMICmnMIValueConst miValueConst5( strType );
+ const CMICmnMIValueConst miValueConst5( utilValue.GetTypeNameDisplay() );
const CMICmnMIValueResult miValueResult5( "type", miValueConst5 );
miValueTuple.Add( miValueResult5 );
const CMICmnMIValueConst miValueConst6( strThreadId );
@@ -1203,14 +1153,7 @@ bool CMICmdCmdVarEvaluateExpression::ParseArgs( void )
{
bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValOptionShort( m_constStrArgFormatSpec, false, false, CMICmdArgValListBase::eArgValType_String, 1 ) ) );
bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
@@ -1332,14 +1275,7 @@ CMICmdCmdVarInfoPathExpression::~CMICmdCmdVarInfoPathExpression( void )
bool CMICmdCmdVarInfoPathExpression::ParseArgs( void )
{
bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
@@ -1495,14 +1431,7 @@ CMICmdCmdVarShowAttributes::~CMICmdCmdVarShowAttributes( void )
bool CMICmdCmdVarShowAttributes::ParseArgs( void )
{
bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValString( m_constStrArgName, true, true ) ) );
- CMICmdArgContext argCntxt( m_cmdData.strMiCmdOption );
- if( bOk && !m_setCmdArgs.Validate( m_cmdData.strMiCmd, argCntxt ) )
- {
- SetError( CMIUtilString::Format( MIRSRC( IDS_CMD_ERR_ARGS ), m_cmdData.strMiCmd.c_str(), m_setCmdArgs.GetErrorDescription().c_str() ) );
- return MIstatus::failure;
- }
-
- return bOk;
+ return (bOk && ParseValidateCmdOptions() );
}
//++ ------------------------------------------------------------------------------------
OpenPOWER on IntegriCloud