diff options
Diffstat (limited to 'tools/lldb-mi/MICmdCmdData.h')
-rw-r--r-- | tools/lldb-mi/MICmdCmdData.h | 596 |
1 files changed, 297 insertions, 299 deletions
diff --git a/tools/lldb-mi/MICmdCmdData.h b/tools/lldb-mi/MICmdCmdData.h index c1501de3918f..74ceeb8581b9 100644 --- a/tools/lldb-mi/MICmdCmdData.h +++ b/tools/lldb-mi/MICmdCmdData.h @@ -8,32 +8,32 @@ //===----------------------------------------------------------------------===// //++ -// File: MICmdCmdData.h +// File: MICmdCmdData.h // -// Overview: CMICmdCmdDataEvaluateExpression interface. -// CMICmdCmdDataDisassemble interface. -// CMICmdCmdDataReadMemoryBytes interface. -// CMICmdCmdDataReadMemory interface. -// CMICmdCmdDataListRegisterNames interface. -// CMICmdCmdDataListRegisterValues interface. -// CMICmdCmdDataListRegisterChanged interface. -// CMICmdCmdDataWriteMemoryBytes interface. -// CMICmdCmdDataWriteMemory interface. +// Overview: CMICmdCmdDataEvaluateExpression interface. +// CMICmdCmdDataDisassemble interface. +// CMICmdCmdDataReadMemoryBytes interface. +// CMICmdCmdDataReadMemory interface. +// CMICmdCmdDataListRegisterNames interface. +// CMICmdCmdDataListRegisterValues interface. +// CMICmdCmdDataListRegisterChanged interface. +// CMICmdCmdDataWriteMemoryBytes interface. +// CMICmdCmdDataWriteMemory interface. // -// To implement new MI commands derive a new command class from the command base -// class. To enable the new command for interpretation add the new command class -// to the command factory. The files of relevance are: -// MICmdCommands.cpp -// MICmdBase.h / .cpp -// MICmdCmd.h / .cpp -// For an introduction to adding a new command see CMICmdCmdSupportInfoMiCmdQuery -// command class as an example. +// To implement new MI commands derive a new command class from the command base +// class. To enable the new command for interpretation add the new command class +// to the command factory. The files of relevance are: +// MICmdCommands.cpp +// MICmdBase.h / .cpp +// MICmdCmd.h / .cpp +// For an introduction to adding a new command see CMICmdCmdSupportInfoMiCmdQuery +// command class as an example. // -// Environment: Compilers: Visual C++ 12. -// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1 -// Libraries: See MIReadmetxt. +// Environment: Compilers: Visual C++ 12. +// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1 +// Libraries: See MIReadmetxt. // -// Copyright: None. +// Copyright: None. //-- #pragma once @@ -44,331 +44,329 @@ #include "MICmnMIValueList.h" //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-evaluate-expression". -// Gotchas: None. -// Authors: Illya Rudkin 26/03/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-evaluate-expression". +// Gotchas: None. +// Authors: Illya Rudkin 26/03/2014. +// Changes: None. //-- class CMICmdCmdDataEvaluateExpression : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataEvaluateExpression( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - virtual bool ParseArgs( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataEvaluateExpression( void ); - -// Methods: -private: - bool HaveInvalidCharacterInExpression( const CMIUtilString & vrExpr, MIchar & vrwInvalidChar ); - -// Attributes: -private: - bool m_bExpressionValid; // True = yes is valid, false = not valid - bool m_bEvaluatedExpression; // True = yes is expression evaluated, false = failed - CMIUtilString m_strValue; - CMICmnMIValueTuple m_miValueTuple; - bool m_bCompositeVarType; // True = yes composite type, false = internal type - bool m_bFoundInvalidChar; // True = yes found unexpected character in the expression, false = all ok - MIchar 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; + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataEvaluateExpression(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + virtual bool ParseArgs(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataEvaluateExpression(void); + + // Methods: + private: + bool HaveInvalidCharacterInExpression(const CMIUtilString &vrExpr, MIchar &vrwInvalidChar); + + // Attributes: + private: + bool m_bExpressionValid; // True = yes is valid, false = not valid + bool m_bEvaluatedExpression; // True = yes is expression evaluated, false = failed + CMIUtilString m_strValue; + CMICmnMIValueTuple m_miValueTuple; + bool m_bCompositeVarType; // True = yes composite type, false = internal type + bool m_bFoundInvalidChar; // True = yes found unexpected character in the expression, false = all ok + MIchar 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; }; //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-disassemble". -// Gotchas: None. -// Authors: Illya Rudkin 19/05/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-disassemble". +// Gotchas: None. +// Authors: Illya Rudkin 19/05/2014. +// Changes: None. //-- class CMICmdCmdDataDisassemble : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataDisassemble( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - virtual bool ParseArgs( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataDisassemble( void ); - -// 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; - const CMIUtilString m_constStrArgMode; - CMICmnMIValueList m_miValueList; + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataDisassemble(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + virtual bool ParseArgs(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataDisassemble(void); + + // 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; + const CMIUtilString m_constStrArgMode; + CMICmnMIValueList m_miValueList; }; //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-read-memory-bytes". -// Gotchas: None. -// Authors: Illya Rudkin 20/05/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-read-memory-bytes". +// Gotchas: None. +// Authors: Illya Rudkin 20/05/2014. +// Changes: None. //-- class CMICmdCmdDataReadMemoryBytes : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataReadMemoryBytes( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - virtual bool ParseArgs( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataReadMemoryBytes( void ); - -// Attributes: -private: - const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option. Not handled by command. - const CMIUtilString m_constStrArgByteOffset; - const CMIUtilString m_constStrArgAddrStart; - const CMIUtilString m_constStrArgNumBytes; - MIuchar * m_pBufferMemory; - MIuint64 m_nAddrStart; - MIuint64 m_nAddrNumBytesToRead; - MIuint64 m_nAddrOffset; + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataReadMemoryBytes(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + virtual bool ParseArgs(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataReadMemoryBytes(void); + + // Attributes: + private: + const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option. Not handled by command. + const CMIUtilString m_constStrArgByteOffset; + const CMIUtilString m_constStrArgAddrStart; + const CMIUtilString m_constStrArgNumBytes; + MIuchar *m_pBufferMemory; + MIuint64 m_nAddrStart; + MIuint64 m_nAddrNumBytesToRead; + MIuint64 m_nAddrOffset; }; //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-read-memory". -// Gotchas: None. -// Authors: Illya Rudkin 21/05/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-read-memory". +// Gotchas: None. +// Authors: Illya Rudkin 21/05/2014. +// Changes: None. //-- class CMICmdCmdDataReadMemory : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataReadMemory( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataReadMemory( void ); + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataReadMemory(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataReadMemory(void); }; //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-list-register-names". -// Gotchas: None. -// Authors: Illya Rudkin 21/05/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-list-register-names". +// Gotchas: None. +// Authors: Illya Rudkin 21/05/2014. +// Changes: None. //-- class CMICmdCmdDataListRegisterNames : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataListRegisterNames( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - virtual bool ParseArgs( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataListRegisterNames( void ); - -// 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; + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataListRegisterNames(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + virtual bool ParseArgs(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataListRegisterNames(void); + + // 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; }; //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-list-register-values". -// Gotchas: None. -// Authors: Illya Rudkin 21/05/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-list-register-values". +// Gotchas: None. +// Authors: Illya Rudkin 21/05/2014. +// Changes: None. //-- class CMICmdCmdDataListRegisterValues : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataListRegisterValues( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - virtual bool ParseArgs( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataListRegisterValues( void ); - -// Methods: -private: - lldb::SBValue GetRegister( const MIuint vRegisterIndex ) const; - -// 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; - CMICmnMIValueList m_miValueList; - lldb::SBProcess * m_pProcess; + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataListRegisterValues(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + virtual bool ParseArgs(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataListRegisterValues(void); + + // Methods: + private: + lldb::SBValue GetRegister(const MIuint vRegisterIndex) const; + + // 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; + CMICmnMIValueList m_miValueList; + lldb::SBProcess *m_pProcess; }; //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-list-changed-registers". -// Gotchas: None. -// Authors: Illya Rudkin 22/05/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-list-changed-registers". +// Gotchas: None. +// Authors: Illya Rudkin 22/05/2014. +// Changes: None. //-- class CMICmdCmdDataListRegisterChanged : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataListRegisterChanged( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataListRegisterChanged( void ); + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataListRegisterChanged(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataListRegisterChanged(void); }; //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-read-memory-bytes". -// Gotchas: None. -// Authors: Illya Rudkin 30/05/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-read-memory-bytes". +// Gotchas: None. +// Authors: Illya Rudkin 30/05/2014. +// Changes: None. //-- class CMICmdCmdDataWriteMemoryBytes : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataWriteMemoryBytes( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - virtual bool ParseArgs( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataWriteMemoryBytes( void ); - -// 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; - MIuint64 m_nAddr; - CMIUtilString m_strContents; - MIuint64 m_nCount; + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataWriteMemoryBytes(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + virtual bool ParseArgs(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataWriteMemoryBytes(void); + + // 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; + CMIUtilString m_strContents; }; //++ ============================================================================ -// Details: MI command class. MI commands derived from the command base class. -// *this class implements MI command "data-read-memory". -// Not specified in MI spec but Eclipse gives *this command. -// Gotchas: None. -// Authors: Illya Rudkin 02/05/2014. -// Changes: None. +// Details: MI command class. MI commands derived from the command base class. +// *this class implements MI command "data-read-memory". +// Not specified in MI spec but Eclipse gives *this command. +// Gotchas: None. +// Authors: Illya Rudkin 02/05/2014. +// Changes: None. //-- class CMICmdCmdDataWriteMemory : public CMICmdBase { -// Statics: -public: - // Required by the CMICmdFactory when registering *this command - static CMICmdBase * CreateSelf( void ); - -// Methods: -public: - /* ctor */ CMICmdCmdDataWriteMemory( void ); - -// Overridden: -public: - // From CMICmdInvoker::ICmd - virtual bool Execute( void ); - virtual bool Acknowledge( void ); - virtual bool ParseArgs( void ); - // From CMICmnBase - /* dtor */ virtual ~CMICmdCmdDataWriteMemory( void ); - -// 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. - const CMIUtilString m_constStrArgNumber; // Not specified in MI spec but Eclipse gives this option. - const CMIUtilString m_constStrArgContents; // Not specified in MI spec but Eclipse gives this option. - MIuint64 m_nAddr; - CMIUtilString m_strContents; - MIuint64 m_nCount; - MIuchar * m_pBufferMemory; -};
\ No newline at end of file + // Statics: + public: + // Required by the CMICmdFactory when registering *this command + static CMICmdBase *CreateSelf(void); + + // Methods: + public: + /* ctor */ CMICmdCmdDataWriteMemory(void); + + // Overridden: + public: + // From CMICmdInvoker::ICmd + virtual bool Execute(void); + virtual bool Acknowledge(void); + virtual bool ParseArgs(void); + // From CMICmnBase + /* dtor */ virtual ~CMICmdCmdDataWriteMemory(void); + + // 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. + const CMIUtilString m_constStrArgNumber; // Not specified in MI spec but Eclipse gives this option. + const CMIUtilString m_constStrArgContents; // Not specified in MI spec but Eclipse gives this option. + MIuint64 m_nAddr; + CMIUtilString m_strContents; + MIuint64 m_nCount; + MIuchar *m_pBufferMemory; +}; |