]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.cpp
Update LLDB snapshot to upstream r241361
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / tools / lldb-mi / MICmdCommands.cpp
1 //===-- MICmdCommands.cpp ---------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 // Overview:    MI command are registered with the MI command factory.
11 //
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:
15 //                  MICmdCommands.cpp
16 //                  MICmdBase.h / .cpp
17 //                  MICmdCmd.h / .cpp
18
19 // In-house headers:
20 #include "MICmdCommands.h"
21 #include "MICmdFactory.h"
22 #include "MICmdCmd.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"
41
42 namespace MICmnCommands
43 {
44 template <typename T> static bool Register(void);
45 }
46
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.
52 // Throws:  None.
53 //--
54 template <typename T>
55 static bool
56 MICmnCommands::Register(void)
57 {
58     static CMICmdFactory &rCmdFactory = CMICmdFactory::Instance();
59     const CMIUtilString strMiCmd = T().GetMiCmd();
60     CMICmdFactory::CmdCreatorFnPtr fn = T().GetCmdCreatorFn();
61     return rCmdFactory.CmdRegister(strMiCmd, fn);
62 }
63
64 //++ ------------------------------------------------------------------------------------
65 // Details: Register commands with MI command factory
66 // Type:    Function.
67 // Args:    None.
68 // Return:  bool  - True = yes all commands are registered,
69 //                  false = one or more commands failed to register.
70 // Throws:  None.
71 //--
72 bool
73 MICmnCommands::RegisterAll(void)
74 {
75     bool bOk = MIstatus::success;
76
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>();
136
137     return bOk;
138 }