Author: panickal
Date: Thu Aug 14 11:40:15 2014
New Revision: 215655

URL: http://llvm.org/viewvc/llvm-project?rev=215655&view=rev
Log:
Fix command "gdb-set" to handle long option --threadgroup and accept 
--longOption type words as just words for string types.
For example, MI command "17-gdb-set --thread-group i1 args --interpreter" is 
now acceptable, "--interpreter" was previous not valid.

Modified:
    lldb/trunk/tools/lldb-mi/MICmdArgValListBase.cpp
    lldb/trunk/tools/lldb-mi/MICmdArgValListBase.h
    lldb/trunk/tools/lldb-mi/MICmdArgValListOfN.cpp
    lldb/trunk/tools/lldb-mi/MICmdArgValString.cpp
    lldb/trunk/tools/lldb-mi/MICmdArgValString.h
    lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.cpp
    lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.h

Modified: lldb/trunk/tools/lldb-mi/MICmdArgValListBase.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdArgValListBase.cpp?rev=215655&r1=215654&r2=215655&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdArgValListBase.cpp (original)
+++ lldb/trunk/tools/lldb-mi/MICmdArgValListBase.cpp Thu Aug 14 11:40:15 2014
@@ -150,6 +150,9 @@ CMICmdArgValBase * CMICmdArgValListBase:
                case eArgValType_StringQuotedNumberPath:
                        pOptionObj = new CMICmdArgValString( true, true, true );
                        break;
+               case eArgValType_StringAnything:
+                       pOptionObj = new CMICmdArgValString( true );
+                       break;
                case eArgValType_ThreadGrp:
                        pOptionObj = new CMICmdArgValThreadGrp();
                        break;
@@ -204,6 +207,9 @@ bool CMICmdArgValListBase::IsExpectedCor
                case eArgValType_StringQuotedNumberPath:
                        bValid = CMICmdArgValString( true, true, true 
).IsStringArg( vrTxt );
                        break;
+               case eArgValType_StringAnything:
+                       bValid = CMICmdArgValString( true ).IsStringArg( vrTxt 
);
+                       break;
                case eArgValType_ThreadGrp:
                        bValid = CMICmdArgValThreadGrp().IsArgThreadGrp( vrTxt 
);
                        break;

Modified: lldb/trunk/tools/lldb-mi/MICmdArgValListBase.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdArgValListBase.h?rev=215655&r1=215654&r2=215655&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdArgValListBase.h (original)
+++ lldb/trunk/tools/lldb-mi/MICmdArgValListBase.h Thu Aug 14 11:40:15 2014
@@ -71,6 +71,7 @@ public:
                eArgValType_StringQuoted,
                eArgValType_StringQuotedNumber,
                eArgValType_StringQuotedNumberPath,
+               eArgValType_StringAnything,                     // Accept any 
words for a string 'type' even if they look like --longOptions for example
                eArgValType_ThreadGrp,
                eArgValType_count,              // Always the last one
                eArgValType_invalid

Modified: lldb/trunk/tools/lldb-mi/MICmdArgValListOfN.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdArgValListOfN.cpp?rev=215655&r1=215654&r2=215655&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdArgValListOfN.cpp (original)
+++ lldb/trunk/tools/lldb-mi/MICmdArgValListOfN.cpp Thu Aug 14 11:40:15 2014
@@ -111,7 +111,8 @@ bool CMICmdArgValListOfN::CreateList( co
        CMIUtilString::VecString_t vecOptions;
        if( (m_eArgType == eArgValType_StringQuoted) ||
            (m_eArgType == eArgValType_StringQuotedNumber) ||
-           (m_eArgType == eArgValType_StringQuotedNumberPath) )
+           (m_eArgType == eArgValType_StringQuotedNumberPath) ||
+               (m_eArgType == eArgValType_StringAnything) )
        {
                if( vrTxt.SplitConsiderQuotes( " ", vecOptions ) == 0 )
                        return MIstatus::failure;
@@ -147,9 +148,10 @@ bool CMICmdArgValListOfN::CreateList( co
 bool CMICmdArgValListOfN::IsListOfN( const CMIUtilString & vrTxt ) const
 {
        CMIUtilString::VecString_t vecOptions;
-       if ( m_eArgType == eArgValType_StringQuoted ||
-            m_eArgType == eArgValType_StringQuotedNumber ||
-            m_eArgType == eArgValType_StringQuotedNumberPath )
+       if( (m_eArgType == eArgValType_StringQuoted) ||
+           (m_eArgType == eArgValType_StringQuotedNumber) ||
+           (m_eArgType == eArgValType_StringQuotedNumberPath) ||
+               (m_eArgType == eArgValType_StringAnything)  )
        {
                if( vrTxt.SplitConsiderQuotes( " ", vecOptions ) == 0 )
                        return false;

Modified: lldb/trunk/tools/lldb-mi/MICmdArgValString.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdArgValString.cpp?rev=215655&r1=215654&r2=215655&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdArgValString.cpp (original)
+++ lldb/trunk/tools/lldb-mi/MICmdArgValString.cpp Thu Aug 14 11:40:15 2014
@@ -34,6 +34,22 @@ CMICmdArgValString::CMICmdArgValString(
 :      m_bHandleQuotedString( false )
 ,      m_bAcceptNumbers( false )
 ,      m_bHandleDirPaths( false )
+,      m_bHandleAnything( false )
+{
+}
+
+//++ 
------------------------------------------------------------------------------------
+// Details:    CMICmdArgValString constructor.
+// Type:       Method.
+// Args:       vbAnything      - (R) True = Parse a string and accept 
anything, false = do not accept anything. 
+// Return:     None.
+// Throws:     None.
+//--
+CMICmdArgValString::CMICmdArgValString( const bool vbAnything )
+:      m_bHandleQuotedString( false )
+,      m_bAcceptNumbers( false )
+,      m_bHandleDirPaths( false )
+,      m_bHandleAnything( vbAnything )
 {
 }
 
@@ -50,6 +66,7 @@ CMICmdArgValString::CMICmdArgValString(
 :      m_bHandleQuotedString( vbHandleQuotes )
 ,      m_bAcceptNumbers( vbAcceptNumbers )
 ,      m_bHandleDirPaths( vbHandleDirPaths )
+,      m_bHandleAnything( false )
 {
 }
 
@@ -69,6 +86,7 @@ CMICmdArgValString::CMICmdArgValString(
 ,      m_bHandleQuotedString( vbHandleQuotes )
 ,      m_bAcceptNumbers( vbAcceptNumbers )
 ,      m_bHandleDirPaths( false )
+,      m_bHandleAnything( false )
 {
 }
 
@@ -345,6 +363,10 @@ bool CMICmdArgValString::IsStringArg( co
 //--
 bool CMICmdArgValString::IsStringArgSingleText( const CMIUtilString & vrTxt ) 
const
 {
+       // Accept anything as string word
+       if( m_bHandleAnything )
+               return true;
+
        if( !m_bHandleDirPaths )
        {
                // Look for directory file paths, if found reject

Modified: lldb/trunk/tools/lldb-mi/MICmdArgValString.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdArgValString.h?rev=215655&r1=215654&r2=215655&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdArgValString.h (original)
+++ lldb/trunk/tools/lldb-mi/MICmdArgValString.h Thu Aug 14 11:40:15 2014
@@ -43,6 +43,7 @@ class CMICmdArgValString : public CMICmd
 // Methods:
 public:
        /* ctor */      CMICmdArgValString( void );
+       /* ctor */      CMICmdArgValString( const bool vbAnything );
        /* ctor */      CMICmdArgValString( const bool vbHandleQuotes, const 
bool vbAcceptNumbers, const bool vbHandleDirPaths );
        /* ctor */      CMICmdArgValString( const CMIUtilString & vrArgName, 
const bool vbMandatory, const bool vbHandleByCmd, const bool vbHandleQuotes = 
false, const bool vbAcceptNumbers = false );
        //
@@ -71,4 +72,5 @@ private:
        bool    m_bHandleQuotedString;  // True = Parse a string surrounded by 
quotes spaces are not delimitors, false = only text up to next delimiting space 
character
        bool    m_bAcceptNumbers;               // True = Parse a string and 
accept as a number if number, false = numbers not recognised as string types
        bool    m_bHandleDirPaths;              // True = Parse a string and 
accept directory file style string if present, false = directory file path not 
accepted
+       bool    m_bHandleAnything;              // True = Parse a string and 
accept anything if present, false = validate for criteria matches
 };

Modified: lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.cpp?rev=215655&r1=215654&r2=215655&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.cpp (original)
+++ lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.cpp Thu Aug 14 11:40:15 2014
@@ -25,6 +25,7 @@
 #include "MICmnMIValueConst.h"
 #include "MICmdArgValString.h"
 #include "MICmdArgValListOfN.h"
+#include "MICmdArgValOptionLong.h"
 #include "MICmnLLDBDebugSessionInfo.h"
 
 // Instantiations:
@@ -44,7 +45,8 @@ const CMICmdCmdGdbSet::MapGdbOptionNameT
 // Throws:     None.
 //--
 CMICmdCmdGdbSet::CMICmdCmdGdbSet( void )
-:      m_constStrArgNamedGdbOption( "option" )
+:      m_constStrArgNamedThreadGrp( "thread-group" )
+,      m_constStrArgNamedGdbOption( "option" )
 ,      m_bGdbOptionRecognised( true ) 
 ,      m_bGdbOptionFnSuccessful( false )
 ,      m_bGbbOptionFnHasError( false )
@@ -79,7 +81,8 @@ CMICmdCmdGdbSet::~CMICmdCmdGdbSet( void
 //--
 bool CMICmdCmdGdbSet::ParseArgs( void )
 {
-       bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValListOfN( 
m_constStrArgNamedGdbOption, true, true, 
CMICmdArgValListBase::eArgValType_StringQuotedNumberPath ) ) );
+       bool bOk = m_setCmdArgs.Add( *(new CMICmdArgValOptionLong( 
m_constStrArgNamedThreadGrp, false, false, 
CMICmdArgValListBase::eArgValType_ThreadGrp, 1 ) ) );
+       bOk = bOk && m_setCmdArgs.Add( *(new CMICmdArgValListOfN( 
m_constStrArgNamedGdbOption, true, true, 
CMICmdArgValListBase::eArgValType_StringAnything ) ) );
        return (bOk && ParseValidateCmdOptions() );
 }
 

Modified: lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.h?rev=215655&r1=215654&r2=215655&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.h (original)
+++ lldb/trunk/tools/lldb-mi/MICmdCmdGdbSet.h Thu Aug 14 11:40:15 2014
@@ -86,6 +86,7 @@ private:
 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


_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to