abidh updated this revision to Diff 38741.
abidh added a comment.
Handled review comments.
http://reviews.llvm.org/D14177
Files:
packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py
tools/lldb-mi/MICmdBase.cpp
tools/lldb-mi/MICmdBase.h
tools/lldb-mi/MICmdCmdBreak.cpp
tools/lldb-mi/MICmdCmdBreak.h
tools/lldb-mi/MICmdCmdData.cpp
tools/lldb-mi/MICmdCmdData.h
tools/lldb-mi/MICmdCmdExec.cpp
tools/lldb-mi/MICmdCmdExec.h
tools/lldb-mi/MICmdCmdFile.cpp
tools/lldb-mi/MICmdCmdFile.h
tools/lldb-mi/MICmdCmdGdbSet.cpp
tools/lldb-mi/MICmdCmdGdbSet.h
tools/lldb-mi/MICmdCmdGdbShow.cpp
tools/lldb-mi/MICmdCmdGdbShow.h
tools/lldb-mi/MICmdCmdStack.cpp
tools/lldb-mi/MICmdCmdStack.h
tools/lldb-mi/MICmdCmdVar.cpp
tools/lldb-mi/MICmdCmdVar.h
tools/lldb-mi/MICmdInvoker.cpp
Index: tools/lldb-mi/MICmdInvoker.cpp
===================================================================
--- tools/lldb-mi/MICmdInvoker.cpp
+++ tools/lldb-mi/MICmdInvoker.cpp
@@ -189,16 +189,20 @@
{
bool bOk = CmdAdd(vCmd);
- if (bOk && !vCmd.ParseArgs())
+ if (bOk)
{
- // Report command execution failed
- const SMICmdData cmdData(vCmd.GetCmdData());
- CmdStdout(cmdData);
- CmdCauseAppExit(vCmd);
- CmdDelete(cmdData.id);
+ vCmd.AddCommonArgs();
+ if (!vCmd.ParseArgs())
+ {
+ // Report command execution failed
+ const SMICmdData cmdData(vCmd.GetCmdData());
+ CmdStdout(cmdData);
+ CmdCauseAppExit(vCmd);
+ CmdDelete(cmdData.id);
- // Proceed to wait or execute next command
- return MIstatus::success;
+ // Proceed to wait or execute next command
+ return MIstatus::success;
+ }
}
if (bOk && !vCmd.Execute())
Index: tools/lldb-mi/MICmdCmdVar.h
===================================================================
--- tools/lldb-mi/MICmdCmdVar.h
+++ tools/lldb-mi/MICmdCmdVar.h
@@ -78,9 +78,6 @@
bool m_bValid; // True = Variable is valid, false = not valid
CMIUtilString m_strExpression;
CMIUtilString m_strValue;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
- const CMIUtilString m_constStrArgThreadGroup; // Not specified in MI spec but Eclipse gives this option
- const CMIUtilString m_constStrArgFrame; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgName;
const CMIUtilString m_constStrArgFrameAddr;
const CMIUtilString m_constStrArgExpression;
Index: tools/lldb-mi/MICmdCmdVar.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdVar.cpp
+++ tools/lldb-mi/MICmdCmdVar.cpp
@@ -51,9 +51,6 @@
, m_strType("??")
, m_bValid(false)
, m_strValue("??")
- , m_constStrArgThread("thread")
- , m_constStrArgThreadGroup("thread-group")
- , m_constStrArgFrame("frame")
, m_constStrArgName("name")
, m_constStrArgFrameAddr("frame-addr")
, m_constStrArgExpression("expression")
@@ -88,10 +85,6 @@
bool
CMICmdCmdVarCreate::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
- m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgThreadGroup, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgFrame, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgName, false, true));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgFrameAddr, false, true));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgExpression, true, true, true, true));
Index: tools/lldb-mi/MICmdCmdStack.h
===================================================================
--- tools/lldb-mi/MICmdCmdStack.h
+++ tools/lldb-mi/MICmdCmdStack.h
@@ -57,7 +57,6 @@
// Attributes:
private:
MIuint m_nThreadFrames;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgMaxDepth; // Not handled by *this command
};
@@ -122,7 +121,6 @@
private:
MIuint m_nThreadFrames;
VecMIValueResult_t m_vecMIValueResult;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgFrameLow;
const CMIUtilString m_constStrArgFrameHigh;
};
@@ -155,7 +153,6 @@
private:
bool m_bThreadInvalid; // True = yes invalid thread, false = thread object valid
CMICmnMIValueList m_miValueList;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgPrintValues;
const CMIUtilString m_constStrArgFrameLow;
const CMIUtilString m_constStrArgFrameHigh;
@@ -189,8 +186,6 @@
private:
bool m_bThreadInvalid; // True = yes invalid thread, false = thread object valid
CMICmnMIValueList m_miValueList;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
- const CMIUtilString m_constStrArgFrame; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgPrintValues;
};
@@ -222,8 +217,6 @@
private:
bool m_bThreadInvalid; // True = yes invalid thread, false = thread object valid
CMICmnMIValueList m_miValueList;
- const CMIUtilString m_constStrArgThread;
- const CMIUtilString m_constStrArgFrame;
const CMIUtilString m_constStrArgPrintValues;
};
@@ -254,5 +247,5 @@
// Attributes:
private:
bool m_bFrameInvalid; // True = yes invalid frame, false = ok
- const CMIUtilString m_constStrArgFrame;
+ const CMIUtilString m_constStrArgFrameId;
};
Index: tools/lldb-mi/MICmdCmdStack.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdStack.cpp
+++ tools/lldb-mi/MICmdCmdStack.cpp
@@ -41,7 +41,6 @@
//--
CMICmdCmdStackInfoDepth::CMICmdCmdStackInfoDepth()
: m_nThreadFrames(0)
- , m_constStrArgThread("thread")
, m_constStrArgMaxDepth("max-depth")
{
// Command factory matches this name with that received from the stdin stream
@@ -74,7 +73,6 @@
bool
CMICmdCmdStackInfoDepth::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgMaxDepth, false, false));
return ParseValidateCmdOptions();
}
@@ -265,7 +263,6 @@
//--
CMICmdCmdStackListFrames::CMICmdCmdStackListFrames()
: m_nThreadFrames(0)
- , m_constStrArgThread("thread")
, m_constStrArgFrameLow("low-frame")
, m_constStrArgFrameHigh("high-frame")
{
@@ -446,7 +443,6 @@
CMICmdCmdStackListArguments::CMICmdCmdStackListArguments()
: m_bThreadInvalid(false)
, m_miValueList(true)
- , m_constStrArgThread("thread")
, m_constStrArgPrintValues("print-values")
, m_constStrArgFrameLow("low-frame")
, m_constStrArgFrameHigh("high-frame")
@@ -632,8 +628,6 @@
CMICmdCmdStackListLocals::CMICmdCmdStackListLocals()
: m_bThreadInvalid(false)
, m_miValueList(true)
- , m_constStrArgThread("thread")
- , m_constStrArgFrame("frame")
, m_constStrArgPrintValues("print-values")
{
// Command factory matches this name with that received from the stdin stream
@@ -666,8 +660,6 @@
bool
CMICmdCmdStackListLocals::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgFrame, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValPrintValues(m_constStrArgPrintValues, true, true));
return ParseValidateCmdOptions();
}
@@ -795,8 +787,6 @@
CMICmdCmdStackListVariables::CMICmdCmdStackListVariables()
: m_bThreadInvalid(false)
, m_miValueList(true)
- , m_constStrArgThread("thread")
- , m_constStrArgFrame("frame")
, m_constStrArgPrintValues("print-values")
{
// Command factory matches this name with that received from the stdin stream
@@ -829,8 +819,6 @@
bool
CMICmdCmdStackListVariables::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgFrame, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValPrintValues(m_constStrArgPrintValues, true, true));
return ParseValidateCmdOptions();
}
@@ -956,7 +944,7 @@
//--
CMICmdCmdStackSelectFrame::CMICmdCmdStackSelectFrame()
: m_bFrameInvalid(false)
- , m_constStrArgFrame("frame")
+ , m_constStrArgFrameId("frame_id")
{
// Command factory matches this name with that received from the stdin stream
m_strMiCmd = "stack-select-frame";
@@ -988,7 +976,7 @@
bool
CMICmdCmdStackSelectFrame::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgFrame, true, false));
+ m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgFrameId, true, false));
return ParseValidateCmdOptions();
}
@@ -1004,7 +992,7 @@
bool
CMICmdCmdStackSelectFrame::Execute()
{
- CMICMDBASE_GETOPTION(pArgFrame, Number, m_constStrArgFrame);
+ CMICMDBASE_GETOPTION(pArgFrame, Number, m_constStrArgFrameId);
CMICmnLLDBDebugSessionInfo &rSessionInfo(CMICmnLLDBDebugSessionInfo::Instance());
lldb::SBThread sbThread = rSessionInfo.GetProcess().GetSelectedThread();
Index: tools/lldb-mi/MICmdCmdGdbShow.h
===================================================================
--- tools/lldb-mi/MICmdCmdGdbShow.h
+++ tools/lldb-mi/MICmdCmdGdbShow.h
@@ -74,8 +74,7 @@
// Attributes:
private:
const static MapGdbOptionNameToFnGdbOptionPtr_t ms_mapGdbOptionNameToFnGdbOptionPtr;
- //
- const CMIUtilString m_constStrArgNamedThreadGrp;
+
const CMIUtilString m_constStrArgNamedGdbOption;
bool m_bGdbOptionRecognised; // True = This command has a function with a name that matches the Print argument, false = not found
bool m_bGdbOptionFnSuccessful; // True = The print function completed its task ok, false = function failed for some reason
Index: tools/lldb-mi/MICmdCmdGdbShow.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdGdbShow.cpp
+++ tools/lldb-mi/MICmdCmdGdbShow.cpp
@@ -39,8 +39,7 @@
// Throws: None.
//--
CMICmdCmdGdbShow::CMICmdCmdGdbShow()
- : m_constStrArgNamedThreadGrp("thread-group")
- , m_constStrArgNamedGdbOption("option")
+ : m_constStrArgNamedGdbOption("option")
, m_bGdbOptionRecognised(true)
, m_bGdbOptionFnSuccessful(false)
, m_bGbbOptionFnHasError(false)
@@ -77,8 +76,6 @@
CMICmdCmdGdbShow::ParseArgs()
{
m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgNamedThreadGrp, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
- m_setCmdArgs.Add(
new CMICmdArgValListOfN(m_constStrArgNamedGdbOption, true, true, CMICmdArgValListBase::eArgValType_StringAnything));
return ParseValidateCmdOptions();
}
Index: tools/lldb-mi/MICmdCmdGdbSet.h
===================================================================
--- tools/lldb-mi/MICmdCmdGdbSet.h
+++ tools/lldb-mi/MICmdCmdGdbSet.h
@@ -76,7 +76,6 @@
private:
const static MapGdbOptionNameToFnGdbOptionPtr_t ms_mapGdbOptionNameToFnGdbOptionPtr;
//
- const CMIUtilString m_constStrArgNamedThreadGrp;
const CMIUtilString m_constStrArgNamedGdbOption;
bool m_bGdbOptionRecognised; // True = This command has a function with a name that matches the Print argument, false = not found
bool m_bGdbOptionFnSuccessful; // True = The print function completed its task ok, false = function failed for some reason
Index: tools/lldb-mi/MICmdCmdGdbSet.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdGdbSet.cpp
+++ tools/lldb-mi/MICmdCmdGdbSet.cpp
@@ -35,8 +35,7 @@
// Throws: None.
//--
CMICmdCmdGdbSet::CMICmdCmdGdbSet()
- : m_constStrArgNamedThreadGrp("thread-group")
- , m_constStrArgNamedGdbOption("option")
+ : m_constStrArgNamedGdbOption("option")
, m_bGdbOptionRecognised(true)
, m_bGdbOptionFnSuccessful(false)
, m_bGbbOptionFnHasError(false)
@@ -73,8 +72,6 @@
CMICmdCmdGdbSet::ParseArgs()
{
m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgNamedThreadGrp, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
- m_setCmdArgs.Add(
new CMICmdArgValListOfN(m_constStrArgNamedGdbOption, true, true, CMICmdArgValListBase::eArgValType_StringAnything));
return ParseValidateCmdOptions();
}
Index: tools/lldb-mi/MICmdCmdFile.h
===================================================================
--- tools/lldb-mi/MICmdCmdFile.h
+++ tools/lldb-mi/MICmdCmdFile.h
@@ -56,8 +56,6 @@
// Attributes:
private:
const CMIUtilString m_constStrArgNameFile;
- const CMIUtilString
- m_constStrArgThreadGrp; // Not handled by *this command. Not specified in MI spec but Eclipse gives this option sometimes
const CMIUtilString m_constStrArgNamedPlatformName; // Added to support iOS platform selection
const CMIUtilString m_constStrArgNamedRemotePath; // Added to support iOS device remote file location
};
Index: tools/lldb-mi/MICmdCmdFile.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdFile.cpp
+++ tools/lldb-mi/MICmdCmdFile.cpp
@@ -32,7 +32,6 @@
//--
CMICmdCmdFileExecAndSymbols::CMICmdCmdFileExecAndSymbols()
: m_constStrArgNameFile("file")
- , m_constStrArgThreadGrp("thread-group")
, m_constStrArgNamedPlatformName("p")
, m_constStrArgNamedRemotePath("r")
{
@@ -66,8 +65,6 @@
bool
CMICmdCmdFileExecAndSymbols::ParseArgs()
{
- m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgThreadGrp, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
m_setCmdArgs.Add(new CMICmdArgValFile(m_constStrArgNameFile, true, true));
m_setCmdArgs.Add(new CMICmdArgValOptionShort(m_constStrArgNamedPlatformName, false, true,
CMICmdArgValListBase::eArgValType_String, 1));
Index: tools/lldb-mi/MICmdCmdExec.h
===================================================================
--- tools/lldb-mi/MICmdCmdExec.h
+++ tools/lldb-mi/MICmdCmdExec.h
@@ -120,7 +120,6 @@
// Attributes:
private:
lldb::SBCommandReturnObject m_lldbResult;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgNumber; // Not specified in MI spec but Eclipse gives this option
};
@@ -151,7 +150,6 @@
// Attributes:
private:
lldb::SBCommandReturnObject m_lldbResult;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgNumber; // Not specified in MI spec but Eclipse gives this option
};
@@ -182,7 +180,6 @@
// Attributes:
private:
lldb::SBCommandReturnObject m_lldbResult;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgNumber; // Not specified in MI spec but Eclipse gives this option
};
@@ -213,7 +210,6 @@
// Attributes:
private:
lldb::SBCommandReturnObject m_lldbResult;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgNumber; // Not specified in MI spec but Eclipse gives this option
};
@@ -244,8 +240,6 @@
// Attributes:
private:
lldb::SBCommandReturnObject m_lldbResult;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
- const CMIUtilString m_constStrArgFrame; // Not specified in MI spec but Eclipse gives this option
};
// CODETAG_DEBUG_SESSION_RUNNING_PROG_RECEIVED_SIGINT_PAUSE_PROGRAM
Index: tools/lldb-mi/MICmdCmdExec.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdExec.cpp
+++ tools/lldb-mi/MICmdCmdExec.cpp
@@ -299,8 +299,7 @@
// Throws: None.
//--
CMICmdCmdExecNext::CMICmdCmdExecNext()
- : m_constStrArgThread("thread")
- , m_constStrArgNumber("number")
+ : m_constStrArgNumber("number")
{
// Command factory matches this name with that received from the stdin stream
m_strMiCmd = "exec-next";
@@ -332,7 +331,6 @@
bool
CMICmdCmdExecNext::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgNumber, false, false));
return ParseValidateCmdOptions();
}
@@ -425,8 +423,7 @@
// Throws: None.
//--
CMICmdCmdExecStep::CMICmdCmdExecStep()
- : m_constStrArgThread("thread")
- , m_constStrArgNumber("number")
+ : m_constStrArgNumber("number")
{
// Command factory matches this name with that received from the stdin stream
m_strMiCmd = "exec-step";
@@ -458,7 +455,6 @@
bool
CMICmdCmdExecStep::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgNumber, false, false));
return ParseValidateCmdOptions();
}
@@ -551,8 +547,7 @@
// Throws: None.
//--
CMICmdCmdExecNextInstruction::CMICmdCmdExecNextInstruction()
- : m_constStrArgThread("thread")
- , m_constStrArgNumber("number")
+ : m_constStrArgNumber("number")
{
// Command factory matches this name with that received from the stdin stream
m_strMiCmd = "exec-next-instruction";
@@ -584,7 +579,6 @@
bool
CMICmdCmdExecNextInstruction::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgNumber, false, false));
return ParseValidateCmdOptions();
}
@@ -677,8 +671,7 @@
// Throws: None.
//--
CMICmdCmdExecStepInstruction::CMICmdCmdExecStepInstruction()
- : m_constStrArgThread("thread")
- , m_constStrArgNumber("number")
+ : m_constStrArgNumber("number")
{
// Command factory matches this name with that received from the stdin stream
m_strMiCmd = "exec-step-instruction";
@@ -710,7 +703,6 @@
bool
CMICmdCmdExecStepInstruction::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgNumber, false, false));
return ParseValidateCmdOptions();
}
@@ -803,8 +795,6 @@
// Throws: None.
//--
CMICmdCmdExecFinish::CMICmdCmdExecFinish()
- : m_constStrArgThread("thread")
- , m_constStrArgFrame("frame")
{
// Command factory matches this name with that received from the stdin stream
m_strMiCmd = "exec-finish";
@@ -836,8 +826,6 @@
bool
CMICmdCmdExecFinish::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgFrame, false, false, CMICmdArgValListBase::eArgValType_Number, 1));
return ParseValidateCmdOptions();
}
Index: tools/lldb-mi/MICmdCmdData.h
===================================================================
--- tools/lldb-mi/MICmdCmdData.h
+++ tools/lldb-mi/MICmdCmdData.h
@@ -75,8 +75,6 @@
CMICmnMIValueTuple m_miValueTuple;
bool m_bFoundInvalidChar; // True = yes found unexpected character in the expression, false = all ok
char m_cExpressionInvalidChar;
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option. Not handled by command.
- const CMIUtilString m_constStrArgFrame; // Not specified in MI spec but Eclipse gives this option. Not handled by command.
const CMIUtilString m_constStrArgExpr;
};
@@ -106,7 +104,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option. Not handled by command.
const CMIUtilString m_constStrArgAddrStart; // MI spec non mandatory, *this command mandatory
const CMIUtilString m_constStrArgAddrEnd; // MI spec non mandatory, *this command mandatory
const CMIUtilString m_constStrArgConsume;
@@ -140,8 +137,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgThread; // Not in the MI spec but implemented by GDB.
- const CMIUtilString m_constStrArgFrame; // Not in the MI spec but implemented by GDB.
const CMIUtilString m_constStrArgByteOffset;
const CMIUtilString m_constStrArgAddrExpr;
const CMIUtilString m_constStrArgNumBytes;
@@ -204,7 +199,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgThreadGroup; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgRegNo; // Not handled by *this command
CMICmnMIValueList m_miValueList;
};
@@ -240,7 +234,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgSkip; // Not handled by *this command
const CMIUtilString m_constStrArgFormat;
const CMIUtilString m_constStrArgRegNo;
@@ -297,7 +290,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option. Not handled by command.
const CMIUtilString m_constStrArgAddr;
const CMIUtilString m_constStrArgContents;
const CMIUtilString m_constStrArgCount;
@@ -331,7 +323,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option. Not handled by command.
const CMIUtilString m_constStrArgOffset; // Not specified in MI spec but Eclipse gives this option.
const CMIUtilString m_constStrArgAddr; // Not specified in MI spec but Eclipse gives this option.
const CMIUtilString m_constStrArgD; // Not specified in MI spec but Eclipse gives this option.
Index: tools/lldb-mi/MICmdCmdData.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdData.cpp
+++ tools/lldb-mi/MICmdCmdData.cpp
@@ -57,8 +57,6 @@
, m_strValue("??")
, m_bFoundInvalidChar(false)
, m_cExpressionInvalidChar(0x00)
- , m_constStrArgThread("thread")
- , m_constStrArgFrame("frame")
, m_constStrArgExpr("expr")
{
// Command factory matches this name with that received from the stdin stream
@@ -91,8 +89,6 @@
bool
CMICmdCmdDataEvaluateExpression::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, false, CMICmdArgValListBase::eArgValType_Number, 1));
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgFrame, false, false, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgExpr, true, true, true, true));
return ParseValidateCmdOptions();
}
@@ -241,8 +237,7 @@
// Throws: None.
//--
CMICmdCmdDataDisassemble::CMICmdCmdDataDisassemble()
- : m_constStrArgThread("thread")
- , m_constStrArgAddrStart("s")
+ : m_constStrArgAddrStart("s")
, m_constStrArgAddrEnd("e")
, m_constStrArgConsume("--")
, m_constStrArgMode("mode")
@@ -278,7 +273,6 @@
bool
CMICmdCmdDataDisassemble::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(
new CMICmdArgValOptionShort(m_constStrArgAddrStart, true, true, CMICmdArgValListBase::eArgValType_StringQuotedNumber, 1));
m_setCmdArgs.Add(
@@ -463,9 +457,7 @@
// Throws: None.
//--
CMICmdCmdDataReadMemoryBytes::CMICmdCmdDataReadMemoryBytes()
- : m_constStrArgThread("thread")
- , m_constStrArgFrame("frame")
- , m_constStrArgByteOffset("o")
+ : m_constStrArgByteOffset("o")
, m_constStrArgAddrExpr("address")
, m_constStrArgNumBytes("count")
, m_pBufferMemory(nullptr)
@@ -507,8 +499,6 @@
bool
CMICmdCmdDataReadMemoryBytes::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgFrame, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValOptionShort(m_constStrArgByteOffset, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgAddrExpr, true, true, true, true));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgNumBytes, true, true));
@@ -789,8 +779,7 @@
// Throws: None.
//--
CMICmdCmdDataListRegisterNames::CMICmdCmdDataListRegisterNames()
- : m_constStrArgThreadGroup("thread-group")
- , m_constStrArgRegNo("regno")
+ : m_constStrArgRegNo("regno")
, m_miValueList(true)
{
// Command factory matches this name with that received from the stdin stream
@@ -823,7 +812,6 @@
bool
CMICmdCmdDataListRegisterNames::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThreadGroup, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
m_setCmdArgs.Add(new CMICmdArgValListOfN(m_constStrArgRegNo, false, false, CMICmdArgValListBase::eArgValType_Number));
return ParseValidateCmdOptions();
}
@@ -977,8 +965,7 @@
// Throws: None.
//--
CMICmdCmdDataListRegisterValues::CMICmdCmdDataListRegisterValues()
- : m_constStrArgThread("thread")
- , m_constStrArgSkip("skip-unavailable")
+ : m_constStrArgSkip("skip-unavailable")
, m_constStrArgFormat("fmt")
, m_constStrArgRegNo("regno")
, m_miValueList(true)
@@ -1288,8 +1275,7 @@
// Throws: None.
//--
CMICmdCmdDataWriteMemoryBytes::CMICmdCmdDataWriteMemoryBytes()
- : m_constStrArgThread("thread")
- , m_constStrArgAddr("address")
+ : m_constStrArgAddr("address")
, m_constStrArgContents("contents")
, m_constStrArgCount("count")
{
@@ -1323,7 +1309,6 @@
bool
CMICmdCmdDataWriteMemoryBytes::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, false, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgAddr, true, true, false, true));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgContents, true, true, true, true));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgCount, false, true, false, true));
@@ -1400,8 +1385,7 @@
// Throws: None.
//--
CMICmdCmdDataWriteMemory::CMICmdCmdDataWriteMemory()
- : m_constStrArgThread("thread")
- , m_constStrArgOffset("o")
+ : m_constStrArgOffset("o")
, m_constStrArgAddr("address")
, m_constStrArgD("d")
, m_constStrArgNumber("a number")
@@ -1445,7 +1429,6 @@
bool
CMICmdCmdDataWriteMemory::ParseArgs()
{
- m_setCmdArgs.Add(new CMICmdArgValOptionLong(m_constStrArgThread, false, false, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValOptionShort(m_constStrArgOffset, false, true, CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgAddr, true, true));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgD, true, true));
Index: tools/lldb-mi/MICmdCmdBreak.h
===================================================================
--- tools/lldb-mi/MICmdCmdBreak.h
+++ tools/lldb-mi/MICmdCmdBreak.h
@@ -95,7 +95,6 @@
const CMIUtilString m_constStrArgNamedInoreCnt;
const CMIUtilString m_constStrArgNamedRestrictBrkPtToThreadId;
const CMIUtilString m_constStrArgNamedLocation;
- const CMIUtilString m_constStrArgNamedThreadGroup; // Not specified in MI spec but Eclipse gives this option sometimes
};
//++ ============================================================================
@@ -125,7 +124,6 @@
// Attributes:
private:
const CMIUtilString m_constStrArgNamedBrkPt;
- const CMIUtilString m_constStrArgNamedThreadGrp; // Not specified in MI spec but Eclipse gives this option
};
//++ ============================================================================
@@ -154,7 +152,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgNamedThreadGrp; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgNamedBrkPt;
bool m_bBrkPtDisabledOk;
MIuint m_nBrkPtId;
@@ -186,7 +183,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgNamedThreadGrp; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgNamedBrkPt;
bool m_bBrkPtEnabledOk;
MIuint m_nBrkPtId;
@@ -218,7 +214,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgNamedThreadGrp; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgNamedNumber;
const CMIUtilString m_constStrArgNamedCount;
MIuint m_nBrkPtId;
@@ -255,7 +250,6 @@
// Attributes:
private:
- const CMIUtilString m_constStrArgNamedThreadGrp; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgNamedNumber;
const CMIUtilString m_constStrArgNamedExpr;
const CMIUtilString m_constStrArgNamedExprNoQuotes; // Not specified in MI spec, we need to handle expressions not surrounded by quotes
Index: tools/lldb-mi/MICmdCmdBreak.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdBreak.cpp
+++ tools/lldb-mi/MICmdCmdBreak.cpp
@@ -57,7 +57,6 @@
, m_constStrArgNamedInoreCnt("i")
, m_constStrArgNamedRestrictBrkPtToThreadId("p")
, m_constStrArgNamedLocation("location")
- , m_constStrArgNamedThreadGroup("thread-group")
{
// Command factory matches this name with that received from the stdin stream
m_strMiCmd = "break-insert";
@@ -102,8 +101,6 @@
m_setCmdArgs.Add(new CMICmdArgValOptionShort(m_constStrArgNamedRestrictBrkPtToThreadId, false, true,
CMICmdArgValListBase::eArgValType_Number, 1));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgNamedLocation, false, true));
- m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgNamedThreadGroup, false, true, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
return ParseValidateCmdOptions();
}
@@ -139,7 +136,7 @@
CMICmdCmdBreakInsert::Execute()
{
CMICMDBASE_GETOPTION(pArgTempBrkPt, OptionShort, m_constStrArgNamedTempBrkPt);
- CMICMDBASE_GETOPTION(pArgThreadGroup, OptionLong, m_constStrArgNamedThreadGroup);
+ CMICMDBASE_GETOPTION(pArgThreadGroup, OptionLong, m_constStrArgThreadGroup);
CMICMDBASE_GETOPTION(pArgLocation, String, m_constStrArgNamedLocation);
CMICMDBASE_GETOPTION(pArgIgnoreCnt, OptionShort, m_constStrArgNamedInoreCnt);
CMICMDBASE_GETOPTION(pArgPendingBrkPt, OptionShort, m_constStrArgNamedPendinfBrkPt);
@@ -372,7 +369,6 @@
//--
CMICmdCmdBreakDelete::CMICmdCmdBreakDelete()
: m_constStrArgNamedBrkPt("breakpoint")
- , m_constStrArgNamedThreadGrp("thread-group")
{
// Command factory matches this name with that received from the stdin stream
m_strMiCmd = "break-delete";
@@ -404,8 +400,6 @@
bool
CMICmdCmdBreakDelete::ParseArgs()
{
- m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgNamedThreadGrp, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
m_setCmdArgs.Add(new CMICmdArgValListOfN(m_constStrArgNamedBrkPt, true, true, CMICmdArgValListBase::eArgValType_Number));
return ParseValidateCmdOptions();
}
@@ -488,8 +482,7 @@
// Throws: None.
//--
CMICmdCmdBreakDisable::CMICmdCmdBreakDisable()
- : m_constStrArgNamedThreadGrp("thread-group")
- , m_constStrArgNamedBrkPt("breakpoint")
+ : m_constStrArgNamedBrkPt("breakpoint")
, m_bBrkPtDisabledOk(false)
, m_nBrkPtId(0)
{
@@ -523,8 +516,6 @@
bool
CMICmdCmdBreakDisable::ParseArgs()
{
- m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgNamedThreadGrp, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
m_setCmdArgs.Add(new CMICmdArgValListOfN(m_constStrArgNamedBrkPt, true, true, CMICmdArgValListBase::eArgValType_Number));
return ParseValidateCmdOptions();
}
@@ -627,8 +618,7 @@
// Throws: None.
//--
CMICmdCmdBreakEnable::CMICmdCmdBreakEnable()
- : m_constStrArgNamedThreadGrp("thread-group")
- , m_constStrArgNamedBrkPt("breakpoint")
+ : m_constStrArgNamedBrkPt("breakpoint")
, m_bBrkPtEnabledOk(false)
, m_nBrkPtId(0)
{
@@ -662,8 +652,6 @@
bool
CMICmdCmdBreakEnable::ParseArgs()
{
- m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgNamedThreadGrp, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
m_setCmdArgs.Add(new CMICmdArgValListOfN(m_constStrArgNamedBrkPt, true, true, CMICmdArgValListBase::eArgValType_Number));
return ParseValidateCmdOptions();
}
@@ -766,8 +754,7 @@
// Throws: None.
//--
CMICmdCmdBreakAfter::CMICmdCmdBreakAfter()
- : m_constStrArgNamedThreadGrp("thread-group")
- , m_constStrArgNamedNumber("number")
+ : m_constStrArgNamedNumber("number")
, m_constStrArgNamedCount("count")
, m_nBrkPtId(0)
, m_nBrkPtCount(0)
@@ -802,8 +789,6 @@
bool
CMICmdCmdBreakAfter::ParseArgs()
{
- m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgNamedThreadGrp, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgNamedNumber, true, true));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgNamedCount, true, true));
return ParseValidateCmdOptions();
@@ -896,8 +881,7 @@
// Throws: None.
//--
CMICmdCmdBreakCondition::CMICmdCmdBreakCondition()
- : m_constStrArgNamedThreadGrp("thread-group")
- , m_constStrArgNamedNumber("number")
+ : m_constStrArgNamedNumber("number")
, m_constStrArgNamedExpr("expr")
, m_constStrArgNamedExprNoQuotes(
"expression not surround by quotes") // Not specified in MI spec, we need to handle expressions not surrounded by quotes
@@ -933,8 +917,6 @@
bool
CMICmdCmdBreakCondition::ParseArgs()
{
- m_setCmdArgs.Add(
- new CMICmdArgValOptionLong(m_constStrArgNamedThreadGrp, false, false, CMICmdArgValListBase::eArgValType_ThreadGrp, 1));
m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgNamedNumber, true, true));
m_setCmdArgs.Add(new CMICmdArgValString(m_constStrArgNamedExpr, true, true, true, true));
m_setCmdArgs.Add(new CMICmdArgValListOfN(m_constStrArgNamedExprNoQuotes, false, false,
Index: tools/lldb-mi/MICmdBase.h
===================================================================
--- tools/lldb-mi/MICmdBase.h
+++ tools/lldb-mi/MICmdBase.h
@@ -65,6 +65,7 @@
virtual CMICmdFactory::CmdCreatorFnPtr GetCmdCreatorFn() const;
virtual MIuint GetGUID();
+ void AddCommonArgs();
// Overrideable:
public:
@@ -94,6 +95,15 @@
bool m_bHasResultRecordExtra; // True = Yes command produced additional MI output to its 1 line response, false = no extra MI output
// formed.
CMICmdArgSet m_setCmdArgs; // The list of arguments *this command needs to parse from the options string to carry out work.
+ const CMIUtilString m_constStrArgThreadGroup;
+ const CMIUtilString m_constStrArgThread;
+ const CMIUtilString m_constStrArgFrame;
+
+ // These 3 members can be used by the derived classes to make any of
+ // "thread", "frame" or "thread-group" mandatory.
+ bool m_ThreadGrpArgMandatory;
+ bool m_ThreadArgMandatory;
+ bool m_FrameArgMandatory;
};
//++ ------------------------------------------------------------------------------------
Index: tools/lldb-mi/MICmdBase.cpp
===================================================================
--- tools/lldb-mi/MICmdBase.cpp
+++ tools/lldb-mi/MICmdBase.cpp
@@ -11,6 +11,7 @@
#include "MICmdBase.h"
#include "MICmnMIValueConst.h"
#include "MICmnLLDBDebugSessionInfo.h"
+#include "MICmdArgValOptionLong.h"
//++ ------------------------------------------------------------------------------------
// Details: CMICmdBase constructor.
@@ -23,6 +24,12 @@
: m_pSelfCreatorFn(nullptr)
, m_rLLDBDebugSessionInfo(CMICmnLLDBDebugSessionInfo::Instance())
, m_bHasResultRecordExtra(false)
+ , m_constStrArgThreadGroup("thread-group")
+ , m_constStrArgThread("thread")
+ , m_constStrArgFrame("frame")
+ , m_ThreadGrpArgMandatory(false)
+ , m_ThreadArgMandatory(false)
+ , m_FrameArgMandatory(false)
{
}
@@ -79,6 +86,20 @@
}
//++ ------------------------------------------------------------------------------------
+// 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));
+}
+
+//++ ------------------------------------------------------------------------------------
// 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.
Index: packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py
===================================================================
--- packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py
+++ packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py
@@ -441,7 +441,7 @@
# Test that -stack-select-frame requires 1 mandatory argument
self.runCmd("-stack-select-frame")
- self.expect("\^error,msg=\"Command 'stack-select-frame'\. Command Args\. Validation failed. Mandatory args not found: frame\"")
+ self.expect("\^error,msg=\"Command 'stack-select-frame'\. Command Args\. Validation failed. Mandatory args not found: frame_id\"")
# Test that -stack-select-frame fails on invalid frame number
self.runCmd("-stack-select-frame 99")
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits