aboutsummaryrefslogtreecommitdiff
path: root/lldb/tools/lldb-mi/MICmdCmdData.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-mi/MICmdCmdData.h')
-rw-r--r--lldb/tools/lldb-mi/MICmdCmdData.h573
1 files changed, 294 insertions, 279 deletions
diff --git a/lldb/tools/lldb-mi/MICmdCmdData.h b/lldb/tools/lldb-mi/MICmdCmdData.h
index a67fd6b..683e410 100644
--- a/lldb/tools/lldb-mi/MICmdCmdData.h
+++ b/lldb/tools/lldb-mi/MICmdCmdData.h
@@ -18,13 +18,16 @@
// CMICmdCmdDataWriteMemory interface.
// CMICmdCmdDataInfoLine 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 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
+// For an introduction to adding a new command see
+// CMICmdCmdSupportInfoMiCmdQuery
// command class as an example.
//
@@ -36,332 +39,344 @@
// In-house headers:
#include "MICmdBase.h"
-#include "MICmnMIValueTuple.h"
-#include "MICmnMIValueList.h"
#include "MICmnLLDBDebugSessionInfoVarObj.h"
+#include "MICmnMIValueList.h"
+#include "MICmnMIValueTuple.h"
-//++ ============================================================================
+//++
+//============================================================================
// Details: MI command class. MI commands derived from the command base class.
// *this class implements MI command "data-evaluate-expression".
//--
-class CMICmdCmdDataEvaluateExpression : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataEvaluateExpression();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- bool ParseArgs() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataEvaluateExpression() override;
-
- // Methods:
- private:
- bool HaveInvalidCharacterInExpression(const CMIUtilString &vrExpr, char &vrwInvalidChar);
-
- // Attributes:
- private:
- bool m_bExpressionValid; // True = yes is valid, false = not valid
- bool m_bEvaluatedExpression; // True = yes is expression evaluated, false = failed
- lldb::SBError m_Error; // Error object, which is examined when m_bEvaluatedExpression is false
- CMIUtilString m_strValue;
- CMICmnMIValueTuple m_miValueTuple;
- bool m_bFoundInvalidChar; // True = yes found unexpected character in the expression, false = all ok
- char m_cExpressionInvalidChar;
- const CMIUtilString m_constStrArgExpr;
+class CMICmdCmdDataEvaluateExpression : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataEvaluateExpression();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ bool ParseArgs() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataEvaluateExpression() override;
+
+ // Methods:
+private:
+ bool HaveInvalidCharacterInExpression(const CMIUtilString &vrExpr,
+ char &vrwInvalidChar);
+
+ // Attributes:
+private:
+ bool m_bExpressionValid; // True = yes is valid, false = not valid
+ bool m_bEvaluatedExpression; // True = yes is expression evaluated, false =
+ // failed
+ lldb::SBError m_Error; // Error object, which is examined when
+ // m_bEvaluatedExpression is false
+ CMIUtilString m_strValue;
+ CMICmnMIValueTuple m_miValueTuple;
+ bool m_bFoundInvalidChar; // True = yes found unexpected character in the
+ // expression, false = all ok
+ char m_cExpressionInvalidChar;
+ const CMIUtilString m_constStrArgExpr;
};
-//++ ============================================================================
+//++
+//============================================================================
// Details: MI command class. MI commands derived from the command base class.
// *this class implements MI command "data-disassemble".
//--
-class CMICmdCmdDataDisassemble : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataDisassemble();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- bool ParseArgs() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataDisassemble() override;
-
- // Attributes:
- 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_constStrArgMode;
- CMICmnMIValueList m_miValueList;
+class CMICmdCmdDataDisassemble : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataDisassemble();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ bool ParseArgs() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataDisassemble() override;
+
+ // Attributes:
+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_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".
//--
-class CMICmdCmdDataReadMemoryBytes : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataReadMemoryBytes();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- bool ParseArgs() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataReadMemoryBytes() override;
-
- // Attributes:
- private:
- const CMIUtilString m_constStrArgByteOffset;
- const CMIUtilString m_constStrArgAddrExpr;
- const CMIUtilString m_constStrArgNumBytes;
- unsigned char *m_pBufferMemory;
- MIuint64 m_nAddrStart;
- MIuint64 m_nAddrNumBytesToRead;
+class CMICmdCmdDataReadMemoryBytes : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataReadMemoryBytes();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ bool ParseArgs() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataReadMemoryBytes() override;
+
+ // Attributes:
+private:
+ const CMIUtilString m_constStrArgByteOffset;
+ const CMIUtilString m_constStrArgAddrExpr;
+ const CMIUtilString m_constStrArgNumBytes;
+ unsigned char *m_pBufferMemory;
+ MIuint64 m_nAddrStart;
+ MIuint64 m_nAddrNumBytesToRead;
};
-//++ ============================================================================
+//++
+//============================================================================
// Details: MI command class. MI commands derived from the command base class.
// *this class implements MI command "data-read-memory".
//--
-class CMICmdCmdDataReadMemory : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataReadMemory();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataReadMemory() override;
+class CMICmdCmdDataReadMemory : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataReadMemory();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataReadMemory() override;
};
-//++ ============================================================================
+//++
+//============================================================================
// Details: MI command class. MI commands derived from the command base class.
// *this class implements MI command "data-list-register-names".
//--
-class CMICmdCmdDataListRegisterNames : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataListRegisterNames();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- bool ParseArgs() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataListRegisterNames() override;
-
- // Methods:
- private:
- lldb::SBValue GetRegister(const MIuint vRegisterIndex) const;
-
- // Attributes:
- private:
- const CMIUtilString m_constStrArgRegNo; // Not handled by *this command
- CMICmnMIValueList m_miValueList;
+class CMICmdCmdDataListRegisterNames : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataListRegisterNames();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ bool ParseArgs() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataListRegisterNames() override;
+
+ // Methods:
+private:
+ lldb::SBValue GetRegister(const MIuint vRegisterIndex) const;
+
+ // Attributes:
+private:
+ 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".
//--
-class CMICmdCmdDataListRegisterValues : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataListRegisterValues();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- bool ParseArgs() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataListRegisterValues() override;
-
- // Methods:
- private:
- lldb::SBValue GetRegister(const MIuint vRegisterIndex) const;
- void AddToOutput(const MIuint vnIndex, const lldb::SBValue &vrValue, CMICmnLLDBDebugSessionInfoVarObj::varFormat_e veVarFormat);
-
- // Attributes:
- private:
- const CMIUtilString m_constStrArgSkip; // Not handled by *this command
- const CMIUtilString m_constStrArgFormat;
- const CMIUtilString m_constStrArgRegNo;
- CMICmnMIValueList m_miValueList;
+class CMICmdCmdDataListRegisterValues : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataListRegisterValues();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ bool ParseArgs() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataListRegisterValues() override;
+
+ // Methods:
+private:
+ lldb::SBValue GetRegister(const MIuint vRegisterIndex) const;
+ void AddToOutput(const MIuint vnIndex, const lldb::SBValue &vrValue,
+ CMICmnLLDBDebugSessionInfoVarObj::varFormat_e veVarFormat);
+
+ // Attributes:
+private:
+ const CMIUtilString m_constStrArgSkip; // Not handled by *this command
+ const CMIUtilString m_constStrArgFormat;
+ const CMIUtilString m_constStrArgRegNo;
+ CMICmnMIValueList m_miValueList;
};
-//++ ============================================================================
+//++
+//============================================================================
// Details: MI command class. MI commands derived from the command base class.
// *this class implements MI command "data-list-changed-registers".
//--
-class CMICmdCmdDataListRegisterChanged : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataListRegisterChanged();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataListRegisterChanged() override;
+class CMICmdCmdDataListRegisterChanged : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataListRegisterChanged();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataListRegisterChanged() override;
};
-//++ ============================================================================
+//++
+//============================================================================
// Details: MI command class. MI commands derived from the command base class.
// *this class implements MI command "data-read-memory-bytes".
//--
-class CMICmdCmdDataWriteMemoryBytes : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataWriteMemoryBytes();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- bool ParseArgs() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataWriteMemoryBytes() override;
-
- // Attributes:
- private:
- const CMIUtilString m_constStrArgAddr;
- const CMIUtilString m_constStrArgContents;
- const CMIUtilString m_constStrArgCount;
- CMIUtilString m_strContents;
+class CMICmdCmdDataWriteMemoryBytes : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataWriteMemoryBytes();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ bool ParseArgs() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataWriteMemoryBytes() override;
+
+ // Attributes:
+private:
+ 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.
//--
-class CMICmdCmdDataWriteMemory : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataWriteMemory();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- bool ParseArgs() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataWriteMemory() override;
-
- // Attributes:
- private:
- 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;
- unsigned char *m_pBufferMemory;
+class CMICmdCmdDataWriteMemory : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataWriteMemory();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ bool ParseArgs() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataWriteMemory() override;
+
+ // Attributes:
+private:
+ 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;
+ unsigned char *m_pBufferMemory;
};
-//++ ============================================================================
+//++
+//============================================================================
// Details: MI command class. MI commands derived from the command base class.
// *this class implements MI command "data-info-line".
// See MIExtensions.txt for details.
//--
-class CMICmdCmdDataInfoLine : public CMICmdBase
-{
- // Statics:
- public:
- // Required by the CMICmdFactory when registering *this command
- static CMICmdBase *CreateSelf();
-
- // Methods:
- public:
- /* ctor */ CMICmdCmdDataInfoLine();
-
- // Overridden:
- public:
- // From CMICmdInvoker::ICmd
- bool Execute() override;
- bool Acknowledge() override;
- bool ParseArgs() override;
- // From CMICmnBase
- /* dtor */ ~CMICmdCmdDataInfoLine() override;
-
- // Attributes:
- private:
- lldb::SBCommandReturnObject m_lldbResult;
- const CMIUtilString m_constStrArgLocation;
+class CMICmdCmdDataInfoLine : public CMICmdBase {
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf();
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdDataInfoLine();
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ bool Execute() override;
+ bool Acknowledge() override;
+ bool ParseArgs() override;
+ // From CMICmnBase
+ /* dtor */ ~CMICmdCmdDataInfoLine() override;
+
+ // Attributes:
+private:
+ lldb::SBCommandReturnObject m_lldbResult;
+ const CMIUtilString m_constStrArgLocation;
};