Author: abidh Date: Mon Nov 2 05:43:40 2015 New Revision: 251793 URL: http://llvm.org/viewvc/llvm-project?rev=251793&view=rev Log: Handle the options and parameters separator in every MI command
Summary: As per the following link, the "--" separator can appear between the options and parameters of any MI command. Previously this separator was only handled by the `-data-disassemble` MI command. I have moved the relevant code into `CMICmdBase` so that any MI command can handle the aforementioned separator. https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Input-Syntax.html#GDB_002fMI-Input-Syntax Reviewers: ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14197 Modified: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py lldb/trunk/tools/lldb-mi/MICmdBase.cpp lldb/trunk/tools/lldb-mi/MICmdBase.h lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp lldb/trunk/tools/lldb-mi/MICmdCmdData.h Modified: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py?rev=251793&r1=251792&r2=251793&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py Mon Nov 2 05:43:40 2015 @@ -40,6 +40,10 @@ class MiDataTestCase(lldbmi_testcase.MiT # Test -data-disassemble: try to disassemble some address self.runCmd("-data-disassemble -s %#x -e %#x -- 0" % (addr, addr + 0x10)) self.expect("\^done,asm_insns=\[{address=\"0x0*%x\",func-name=\"main\",offset=\"0\",size=\"[1-9]+\",inst=\".+?\"}," % addr) + + # Test -data-disassemble without "--" + self.runCmd("-data-disassemble -s %#x -e %#x 0" % (addr, addr + 0x10)) + self.expect("\^done,asm_insns=\[{address=\"0x0*%x\",func-name=\"main\",offset=\"0\",size=\"[1-9]+\",inst=\".+?\"}," % addr) # Run to hello_world self.runCmd("-break-insert -f hello_world") Modified: lldb/trunk/tools/lldb-mi/MICmdBase.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdBase.cpp?rev=251793&r1=251792&r2=251793&view=diff ============================================================================== --- lldb/trunk/tools/lldb-mi/MICmdBase.cpp (original) +++ lldb/trunk/tools/lldb-mi/MICmdBase.cpp Mon Nov 2 05:43:40 2015 @@ -12,6 +12,7 @@ #include "MICmnMIValueConst.h" #include "MICmnLLDBDebugSessionInfo.h" #include "MICmdArgValOptionLong.h" +#include "MICmdArgValConsume.h" //++ ------------------------------------------------------------------------------------ // Details: CMICmdBase constructor. @@ -27,6 +28,7 @@ CMICmdBase::CMICmdBase() , m_constStrArgThreadGroup("thread-group") , m_constStrArgThread("thread") , m_constStrArgFrame("frame") + , m_constStrArgConsume("--") , m_ThreadGrpArgMandatory(false) , m_ThreadArgMandatory(false) , m_FrameArgMandatory(false) @@ -97,6 +99,7 @@ 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)); } //++ ------------------------------------------------------------------------------------ Modified: lldb/trunk/tools/lldb-mi/MICmdBase.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdBase.h?rev=251793&r1=251792&r2=251793&view=diff ============================================================================== --- lldb/trunk/tools/lldb-mi/MICmdBase.h (original) +++ lldb/trunk/tools/lldb-mi/MICmdBase.h Mon Nov 2 05:43:40 2015 @@ -98,6 +98,7 @@ class CMICmdBase : public CMICmnBase, pu const CMIUtilString m_constStrArgThreadGroup; const CMIUtilString m_constStrArgThread; const CMIUtilString m_constStrArgFrame; + const CMIUtilString m_constStrArgConsume; // These 3 members can be used by the derived classes to make any of // "thread", "frame" or "thread-group" mandatory. Modified: lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp?rev=251793&r1=251792&r2=251793&view=diff ============================================================================== --- lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp (original) +++ lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp Mon Nov 2 05:43:40 2015 @@ -239,7 +239,6 @@ CMICmdCmdDataEvaluateExpression::HaveInv CMICmdCmdDataDisassemble::CMICmdCmdDataDisassemble() : m_constStrArgAddrStart("s") , m_constStrArgAddrEnd("e") - , m_constStrArgConsume("--") , m_constStrArgMode("mode") , m_miValueList(true) { @@ -277,7 +276,6 @@ CMICmdCmdDataDisassemble::ParseArgs() new CMICmdArgValOptionShort(m_constStrArgAddrStart, true, true, CMICmdArgValListBase::eArgValType_StringQuotedNumber, 1)); m_setCmdArgs.Add( new CMICmdArgValOptionShort(m_constStrArgAddrEnd, true, true, CMICmdArgValListBase::eArgValType_StringQuotedNumber, 1)); - m_setCmdArgs.Add(new CMICmdArgValConsume(m_constStrArgConsume, true)); m_setCmdArgs.Add(new CMICmdArgValNumber(m_constStrArgMode, true, true)); return ParseValidateCmdOptions(); } Modified: lldb/trunk/tools/lldb-mi/MICmdCmdData.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdCmdData.h?rev=251793&r1=251792&r2=251793&view=diff ============================================================================== --- lldb/trunk/tools/lldb-mi/MICmdCmdData.h (original) +++ lldb/trunk/tools/lldb-mi/MICmdCmdData.h Mon Nov 2 05:43:40 2015 @@ -106,7 +106,6 @@ class CMICmdCmdDataDisassemble : public private: 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; const CMIUtilString m_constStrArgMode; CMICmnMIValueList m_miValueList; }; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits