1 //===-- MICmdCommands.cpp ---------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // Overview: MI command are registered with the MI command factory.
12 // To implement new MI commands derive a new command class from the command base
13 // class. To enable the new command for interpretation add the new command class
14 // to the command factory. The files of relevance are:
20 #include "MICmdCommands.h"
21 #include "MICmdFactory.h"
23 #include "MICmdCmdBreak.h"
24 #include "MICmdCmdData.h"
25 #include "MICmdCmdEnviro.h"
26 #include "MICmdCmdExec.h"
27 #include "MICmdCmdFile.h"
28 #include "MICmdCmdGdbInfo.h"
29 #include "MICmdCmdGdbSet.h"
30 #include "MICmdCmdGdbShow.h"
31 #include "MICmdCmdGdbThread.h"
32 #include "MICmdCmdMiscellanous.h"
33 #include "MICmdCmdStack.h"
34 #include "MICmdCmdSupportInfo.h"
35 #include "MICmdCmdSupportList.h"
36 #include "MICmdCmdSymbol.h"
37 #include "MICmdCmdTarget.h"
38 #include "MICmdCmdThread.h"
39 #include "MICmdCmdTrace.h"
40 #include "MICmdCmdVar.h"
42 namespace MICmnCommands
44 template <typename T> static bool Register(void);
47 //++ ------------------------------------------------------------------------------------
48 // Details: Command to command factory registration function.
49 // Type: Template function.
50 // Args: typename T - A command type class.
51 // Return: bool - True = yes command is registered, false = command failed to register.
56 MICmnCommands::Register(void)
58 static CMICmdFactory &rCmdFactory = CMICmdFactory::Instance();
59 const CMIUtilString strMiCmd = T().GetMiCmd();
60 CMICmdFactory::CmdCreatorFnPtr fn = T().GetCmdCreatorFn();
61 return rCmdFactory.CmdRegister(strMiCmd, fn);
64 //++ ------------------------------------------------------------------------------------
65 // Details: Register commands with MI command factory
68 // Return: bool - True = yes all commands are registered,
69 // false = one or more commands failed to register.
73 MICmnCommands::RegisterAll(void)
75 bool bOk = MIstatus::success;
77 bOk &= Register<CMICmdCmdSupportInfoMiCmdQuery>();
78 bOk &= Register<CMICmdCmdBreakAfter>();
79 bOk &= Register<CMICmdCmdBreakCondition>();
80 bOk &= Register<CMICmdCmdBreakDelete>();
81 bOk &= Register<CMICmdCmdBreakDisable>();
82 bOk &= Register<CMICmdCmdBreakEnable>();
83 bOk &= Register<CMICmdCmdBreakInsert>();
84 bOk &= Register<CMICmdCmdDataDisassemble>();
85 bOk &= Register<CMICmdCmdDataEvaluateExpression>();
86 bOk &= Register<CMICmdCmdDataInfoLine>();
87 bOk &= Register<CMICmdCmdDataReadMemoryBytes>();
88 bOk &= Register<CMICmdCmdDataReadMemory>();
89 bOk &= Register<CMICmdCmdDataListRegisterNames>();
90 bOk &= Register<CMICmdCmdDataListRegisterValues>();
91 bOk &= Register<CMICmdCmdDataWriteMemory>();
92 bOk &= Register<CMICmdCmdEnablePrettyPrinting>();
93 bOk &= Register<CMICmdCmdEnvironmentCd>();
94 bOk &= Register<CMICmdCmdExecAbort>();
95 bOk &= Register<CMICmdCmdExecArguments>();
96 bOk &= Register<CMICmdCmdExecContinue>();
97 bOk &= Register<CMICmdCmdExecInterrupt>();
98 bOk &= Register<CMICmdCmdExecFinish>();
99 bOk &= Register<CMICmdCmdExecNext>();
100 bOk &= Register<CMICmdCmdExecNextInstruction>();
101 bOk &= Register<CMICmdCmdExecRun>();
102 bOk &= Register<CMICmdCmdExecStep>();
103 bOk &= Register<CMICmdCmdExecStepInstruction>();
104 bOk &= Register<CMICmdCmdFileExecAndSymbols>();
105 bOk &= Register<CMICmdCmdGdbExit>();
106 bOk &= Register<CMICmdCmdGdbInfo>();
107 bOk &= Register<CMICmdCmdGdbSet>();
108 bOk &= Register<CMICmdCmdGdbShow>();
109 bOk &= Register<CMICmdCmdGdbThread>();
110 bOk &= Register<CMICmdCmdInferiorTtySet>();
111 bOk &= Register<CMICmdCmdInterpreterExec>();
112 bOk &= Register<CMICmdCmdListThreadGroups>();
113 bOk &= Register<CMICmdCmdSource>();
114 bOk &= Register<CMICmdCmdStackInfoDepth>();
115 bOk &= Register<CMICmdCmdStackInfoFrame>();
116 bOk &= Register<CMICmdCmdStackListFrames>();
117 bOk &= Register<CMICmdCmdStackListArguments>();
118 bOk &= Register<CMICmdCmdStackListLocals>();
119 bOk &= Register<CMICmdCmdStackListVariables>();
120 bOk &= Register<CMICmdCmdStackSelectFrame>();
121 bOk &= Register<CMICmdCmdSupportListFeatures>();
122 bOk &= Register<CMICmdCmdSymbolListLines>();
123 bOk &= Register<CMICmdCmdTargetSelect>();
124 bOk &= Register<CMICmdCmdTargetAttach>();
125 bOk &= Register<CMICmdCmdTargetDetach>();
126 bOk &= Register<CMICmdCmdThreadInfo>();
127 bOk &= Register<CMICmdCmdVarAssign>();
128 bOk &= Register<CMICmdCmdVarCreate>();
129 bOk &= Register<CMICmdCmdVarDelete>();
130 bOk &= Register<CMICmdCmdVarEvaluateExpression>();
131 bOk &= Register<CMICmdCmdVarInfoPathExpression>();
132 bOk &= Register<CMICmdCmdVarListChildren>();
133 bOk &= Register<CMICmdCmdVarSetFormat>();
134 bOk &= Register<CMICmdCmdVarShowAttributes>();
135 bOk &= Register<CMICmdCmdVarUpdate>();