diff options
Diffstat (limited to 'tools/lldb-mi/MICmdBase.cpp')
-rw-r--r-- | tools/lldb-mi/MICmdBase.cpp | 59 |
1 files changed, 40 insertions, 19 deletions
diff --git a/tools/lldb-mi/MICmdBase.cpp b/tools/lldb-mi/MICmdBase.cpp index 97bf5a074d6d..2f63205dd9b7 100644 --- a/tools/lldb-mi/MICmdBase.cpp +++ b/tools/lldb-mi/MICmdBase.cpp @@ -11,6 +11,8 @@ #include "MICmdBase.h" #include "MICmnMIValueConst.h" #include "MICmnLLDBDebugSessionInfo.h" +#include "MICmdArgValOptionLong.h" +#include "MICmdArgValConsume.h" //++ ------------------------------------------------------------------------------------ // Details: CMICmdBase constructor. @@ -19,10 +21,17 @@ // Return: None. // Throws: None. //-- -CMICmdBase::CMICmdBase(void) +CMICmdBase::CMICmdBase() : m_pSelfCreatorFn(nullptr) , m_rLLDBDebugSessionInfo(CMICmnLLDBDebugSessionInfo::Instance()) , m_bHasResultRecordExtra(false) + , m_constStrArgThreadGroup("thread-group") + , m_constStrArgThread("thread") + , m_constStrArgFrame("frame") + , m_constStrArgConsume("--") + , m_ThreadGrpArgMandatory(false) + , m_ThreadArgMandatory(false) + , m_FrameArgMandatory(false) { } @@ -33,7 +42,7 @@ CMICmdBase::CMICmdBase(void) // Return: None. // Throws: None. //-- -CMICmdBase::~CMICmdBase(void) +CMICmdBase::~CMICmdBase() { } @@ -45,7 +54,7 @@ CMICmdBase::~CMICmdBase(void) // Throws: None. //-- const SMICmdData & -CMICmdBase::GetCmdData(void) const +CMICmdBase::GetCmdData() const { return m_cmdData; } @@ -59,7 +68,7 @@ CMICmdBase::GetCmdData(void) const // Throws: None. //-- const CMIUtilString & -CMICmdBase::GetErrorDescription(void) const +CMICmdBase::GetErrorDescription() const { return m_strCurrentErrDescription; } @@ -73,26 +82,38 @@ CMICmdBase::GetErrorDescription(void) const // Throws: None. //-- const CMIUtilString & -CMICmdBase::GetMiCmd(void) const +CMICmdBase::GetMiCmd() const { return m_strMiCmd; } //++ ------------------------------------------------------------------------------------ +// Details: Help parse the arguments that are common to all commands. +// Args: None. +// Return: None +// Throws: None. +//-- +void +CMICmdBase::AddCommonArgs() +{ + m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThreadGroup, m_ThreadGrpArgMandatory, true, CMICmdArgValListBase::eArgValType_ThreadGrp, 1)); + m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, m_ThreadArgMandatory, true, CMICmdArgValListBase::eArgValType_Number, 1)); + m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgFrame, m_FrameArgMandatory, true, CMICmdArgValListBase::eArgValType_Number, 1)); + m_setCmdArgs.Add(new CMICmdArgValConsume(m_constStrArgConsume, false)); +} + +//++ ------------------------------------------------------------------------------------ // Details: The invoker requires this function. A command must be given working data and // provide data about its status or provide information to other objects. // Type: Overridden. // Args: None. -// Return: MIstatus::success - Functional succeeded. -// MIstatus::failure - Functional failed. +// Return: None. // Throws: None. //-- -bool +void CMICmdBase::SetCmdData(const SMICmdData &vCmdData) { m_cmdData = vCmdData; - - return MIstatus::success; } //++ ------------------------------------------------------------------------------------ @@ -104,7 +125,7 @@ CMICmdBase::SetCmdData(const SMICmdData &vCmdData) // Throws: None. //-- CMICmdFactory::CmdCreatorFnPtr -CMICmdBase::GetCmdCreatorFn(void) const +CMICmdBase::GetCmdCreatorFn() const { return m_pSelfCreatorFn; } @@ -120,7 +141,7 @@ CMICmdBase::GetCmdCreatorFn(void) const // Throws: None. //-- void -CMICmdBase::CmdFinishedTellInvoker(void) const +CMICmdBase::CmdFinishedTellInvoker() const { CMICmdInvoker::Instance().CmdExecuteFinished(const_cast<CMICmdBase &>(*this)); } @@ -134,7 +155,7 @@ CMICmdBase::CmdFinishedTellInvoker(void) const // Throws: None. //-- const CMIUtilString & -CMICmdBase::GetMIResultRecord(void) const +CMICmdBase::GetMIResultRecord() const { return m_miResultRecord.GetString(); } @@ -149,7 +170,7 @@ CMICmdBase::GetMIResultRecord(void) const // Throws: None. //-- const CMIUtilString & -CMICmdBase::GetMIResultRecordExtra(void) const +CMICmdBase::GetMIResultRecordExtra() const { return m_miResultRecordExtra; } @@ -164,7 +185,7 @@ CMICmdBase::GetMIResultRecordExtra(void) const // Throws: None. //-- bool -CMICmdBase::HasMIResultRecordExtra(void) const +CMICmdBase::HasMIResultRecordExtra() const { return m_bHasResultRecordExtra; } @@ -198,7 +219,7 @@ CMICmdBase::SetError(const CMIUtilString &rErrMsg) // Throws: None. //-- MIuint -CMICmdBase::GetGUID(void) +CMICmdBase::GetGUID() { MIuint64 vptr = reinterpret_cast<MIuint64>(this); MIuint id = (vptr)&0xFFFFFFFF; @@ -217,7 +238,7 @@ CMICmdBase::GetGUID(void) // Throws: None. //-- bool -CMICmdBase::ParseArgs(void) +CMICmdBase::ParseArgs() { // Do nothing - override to implement @@ -236,7 +257,7 @@ CMICmdBase::ParseArgs(void) // Throws: None. //-- bool -CMICmdBase::ParseValidateCmdOptions(void) +CMICmdBase::ParseValidateCmdOptions() { CMICmdArgContext argCntxt(m_cmdData.strMiCmdOption); if (m_setCmdArgs.Validate(m_cmdData.strMiCmd, argCntxt)) @@ -259,7 +280,7 @@ CMICmdBase::ParseValidateCmdOptions(void) // Throws: None. //-- bool -CMICmdBase::GetExitAppOnCommandFailure(void) const +CMICmdBase::GetExitAppOnCommandFailure() const { return false; } |