aboutsummaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmdCommands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmdCommands.cpp')
-rw-r--r--tools/lldb-mi/MICmdCommands.cpp135
1 files changed, 135 insertions, 0 deletions
diff --git a/tools/lldb-mi/MICmdCommands.cpp b/tools/lldb-mi/MICmdCommands.cpp
new file mode 100644
index 000000000000..4187b059b395
--- /dev/null
+++ b/tools/lldb-mi/MICmdCommands.cpp
@@ -0,0 +1,135 @@
+//===-- MICmdCommands.cpp ---------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+//++
+// File: MICmdCommands.cpp
+//
+// Overview: MI command are registered with the MI command factory.
+//
+// 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
+//
+// Environment: Compilers: Visual C++ 12.
+// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
+// Libraries: See MIReadmetxt.
+//
+// Copyright: None.
+//--
+
+// In-house headers:
+#include "MICmdCommands.h"
+#include "MICmdFactory.h"
+#include "MICmdCmd.h"
+#include "MICmdCmdBreak.h"
+#include "MICmdCmdData.h"
+#include "MICmdCmdEnviro.h"
+#include "MICmdCmdExec.h"
+#include "MICmdCmdFile.h"
+#include "MICmdCmdGdbInfo.h"
+#include "MICmdCmdGdbSet.h"
+#include "MICmdCmdGdbThread.h"
+#include "MICmdCmdMiscellanous.h"
+#include "MICmdCmdStack.h"
+#include "MICmdCmdSupportInfo.h"
+#include "MICmdCmdSupportList.h"
+#include "MICmdCmdTarget.h"
+#include "MICmdCmdThread.h"
+#include "MICmdCmdTrace.h"
+#include "MICmdCmdVar.h"
+
+namespace MICmnCommands
+{
+ template< typename T >
+ static bool Register( void );
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Command to command factory registration function.
+// Type: Template function.
+// Args: typename T - A command type class.
+// Return: bool - True = yes command is registered, false = command failed to register.
+// Throws: None.
+//--
+template< typename T >
+static bool MICmnCommands::Register( void )
+{
+ static CMICmdFactory & rCmdFactory = CMICmdFactory::Instance();
+ const CMIUtilString strMiCmd = T().GetMiCmd();
+ CMICmdFactory::CmdCreatorFnPtr fn = T().GetCmdCreatorFn();
+ return rCmdFactory.CmdRegister( strMiCmd, fn );
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Register commands with MI command factory
+// Type: Function.
+// Args: None.
+// Return: bool - True = yes all commands are registered,
+// false = one or more commands failed to register.
+// Throws: None.
+//--
+bool MICmnCommands::RegisterAll( void )
+{
+ bool bOk = MIstatus::success;
+
+ bOk &= Register< CMICmdCmdSupportInfoMiCmdQuery >();
+ bOk &= Register< CMICmdCmdBreakAfter >();
+ bOk &= Register< CMICmdCmdBreakCondition >();
+ bOk &= Register< CMICmdCmdBreakDelete >();
+ bOk &= Register< CMICmdCmdBreakDisable >();
+ bOk &= Register< CMICmdCmdBreakEnable >();
+ bOk &= Register< CMICmdCmdBreakInsert >();
+ bOk &= Register< CMICmdCmdDataDisassemble >();
+ bOk &= Register< CMICmdCmdDataEvaluateExpression >();
+ bOk &= Register< CMICmdCmdDataReadMemoryBytes >();
+ bOk &= Register< CMICmdCmdDataReadMemory >();
+ bOk &= Register< CMICmdCmdDataListRegisterNames >();
+ bOk &= Register< CMICmdCmdDataListRegisterValues >();
+ bOk &= Register< CMICmdCmdDataWriteMemory >();
+ bOk &= Register< CMICmdCmdEnablePrettyPrinting >();
+ bOk &= Register< CMICmdCmdEnvironmentCd >();
+ bOk &= Register< CMICmdCmdExecContinue >();
+ bOk &= Register< CMICmdCmdExecInterrupt >();
+ bOk &= Register< CMICmdCmdExecFinish >();
+ bOk &= Register< CMICmdCmdExecNext >();
+ bOk &= Register< CMICmdCmdExecNextInstruction >();
+ bOk &= Register< CMICmdCmdExecRun >();
+ bOk &= Register< CMICmdCmdExecStep >();
+ bOk &= Register< CMICmdCmdExecStepInstruction >();
+ bOk &= Register< CMICmdCmdFileExecAndSymbols >();
+ bOk &= Register< CMICmdCmdGdbExit >();
+ bOk &= Register< CMICmdCmdGdbInfo >();
+ bOk &= Register< CMICmdCmdGdbSet >();
+ bOk &= Register< CMICmdCmdGdbThread >();
+ bOk &= Register< CMICmdCmdInferiorTtySet >();
+ bOk &= Register< CMICmdCmdInterpreterExec >();
+ bOk &= Register< CMICmdCmdListThreadGroups >();
+ bOk &= Register< CMICmdCmdSource >();
+ bOk &= Register< CMICmdCmdStackInfoDepth >();
+ bOk &= Register< CMICmdCmdStackListFrames >();
+ bOk &= Register< CMICmdCmdStackListArguments >();
+ bOk &= Register< CMICmdCmdStackListLocals >();
+ bOk &= Register< CMICmdCmdSupportListFeatures >();
+ bOk &= Register< CMICmdCmdTargetSelect >();
+ bOk &= Register< CMICmdCmdThreadInfo >();
+ bOk &= Register< CMICmdCmdVarAssign >();
+ bOk &= Register< CMICmdCmdVarCreate >();
+ bOk &= Register< CMICmdCmdVarDelete >();
+ bOk &= Register< CMICmdCmdVarEvaluateExpression >();
+ bOk &= Register< CMICmdCmdVarInfoPathExpression >();
+ bOk &= Register< CMICmdCmdVarListChildren >();
+ bOk &= Register< CMICmdCmdVarSetFormat >();
+ bOk &= Register< CMICmdCmdVarShowAttributes >();
+ bOk &= Register< CMICmdCmdVarUpdate >();
+
+ return bOk;
+}