//===-- 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; }