summaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmdCmdStack.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmdCmdStack.h')
-rw-r--r--tools/lldb-mi/MICmdCmdStack.h113
1 files changed, 97 insertions, 16 deletions
diff --git a/tools/lldb-mi/MICmdCmdStack.h b/tools/lldb-mi/MICmdCmdStack.h
index ebef7e197f5f..ed141fcf942f 100644
--- a/tools/lldb-mi/MICmdCmdStack.h
+++ b/tools/lldb-mi/MICmdCmdStack.h
@@ -7,13 +7,12 @@
//
//===----------------------------------------------------------------------===//
-//++
-// File: MICmdCmdStack.h
-//
// Overview: CMICmdCmdStackInfoDepth interface.
+// CMICmdCmdStackInfoFrame interface.
// CMICmdCmdStackListFrames interface.
// CMICmdCmdStackListArguments interface.
// CMICmdCmdStackListLocals interface.
+// CMICmdCmdStackSelectFrame 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
@@ -23,19 +22,13 @@
// 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.
-//
-// Copyright: None.
-//--
#pragma once
// In-house headers:
#include "MICmdBase.h"
#include "MICmnMIValueList.h"
+#include "MICmnMIValueTuple.h"
//++ ============================================================================
// Details: MI command class. MI commands derived from the command base class.
@@ -73,6 +66,35 @@ class CMICmdCmdStackInfoDepth : public CMICmdBase
//++ ============================================================================
// Details: MI command class. MI commands derived from the command base class.
+// *this class implements MI command "stack-info-frame".
+//--
+class CMICmdCmdStackInfoFrame : public CMICmdBase
+{
+ // Statics:
+ public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf(void);
+
+ // Methods:
+ public:
+ /* ctor */ CMICmdCmdStackInfoFrame(void);
+
+ // Overridden:
+ public:
+ // From CMICmdInvoker::ICmd
+ virtual bool Execute(void);
+ virtual bool Acknowledge(void);
+ virtual bool ParseArgs(void);
+ // From CMICmnBase
+ /* dtor */ virtual ~CMICmdCmdStackInfoFrame(void);
+
+ // Attributes:
+ private:
+ CMICmnMIValueTuple m_miValueTuple;
+};
+
+//++ ============================================================================
+// Details: MI command class. MI commands derived from the command base class.
// *this class implements MI command "stack-list-frames".
// Gotchas: None.
// Authors: Illya Rudkin 21/03/2014.
@@ -144,9 +166,8 @@ class CMICmdCmdStackListArguments : public CMICmdBase
CMICmnMIValueList m_miValueList;
const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
const CMIUtilString m_constStrArgPrintValues;
- const CMIUtilString m_constStrArgNoValues;
- const CMIUtilString m_constStrArgAllValues;
- const CMIUtilString m_constStrArgSimpleValues;
+ const CMIUtilString m_constStrArgFrameLow;
+ const CMIUtilString m_constStrArgFrameHigh;
};
//++ ============================================================================
@@ -183,7 +204,67 @@ class CMICmdCmdStackListLocals : public CMICmdBase
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;
- const CMIUtilString m_constStrArgNoValues;
- const CMIUtilString m_constStrArgAllValues;
- const CMIUtilString m_constStrArgSimpleValues;
+};
+
+//++ ============================================================================
+// Details: MI command class. MI commands derived from the command base class.
+// *this class implements MI command "stack-list-variables".
+//--
+class CMICmdCmdStackListVariables : public CMICmdBase
+{
+ // Statics:
+public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf(void);
+
+ // Methods:
+public:
+ /* ctor */ CMICmdCmdStackListVariables(void);
+
+ // Overridden:
+public:
+ // From CMICmdInvoker::ICmd
+ virtual bool Execute(void);
+ virtual bool Acknowledge(void);
+ virtual bool ParseArgs(void);
+ // From CMICmnBase
+ /* dtor */ virtual ~CMICmdCmdStackListVariables(void);
+
+ // Attributes
+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;
+};
+
+//++ ============================================================================
+// Details: MI command class. MI commands derived from the command base class.
+// *this class implements MI command "stack-select-frame".
+//--
+class CMICmdCmdStackSelectFrame : public CMICmdBase
+{
+ // Statics:
+ public:
+ // Required by the CMICmdFactory when registering *this command
+ static CMICmdBase *CreateSelf(void);
+
+ // Methods:
+ public:
+ /* ctor */ CMICmdCmdStackSelectFrame(void);
+
+ // Overridden:
+ public:
+ // From CMICmdInvoker::ICmd
+ virtual bool Execute(void);
+ virtual bool Acknowledge(void);
+ virtual bool ParseArgs(void);
+ // From CMICmnBase
+ /* dtor */ virtual ~CMICmdCmdStackSelectFrame(void);
+
+ // Attributes:
+ private:
+ bool m_bFrameInvalid; // True = yes invalid frame, false = ok
+ const CMIUtilString m_constStrArgFrame;
};