diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2014-11-25 21:00:58 +0000 | 
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2014-11-25 21:00:58 +0000 | 
| commit | 0cac4ca3916ac24ab6139d03cbfd18db9e715bfe (patch) | |
| tree | c94307da318be46e5aeea1a325c1e91749506e4f /tools/lldb-mi/MICmdCommands.cpp | |
| parent | 03b99097822ca3ac69252d9afae716a584ed56c4 (diff) | |
Notes
Diffstat (limited to 'tools/lldb-mi/MICmdCommands.cpp')
| -rw-r--r-- | tools/lldb-mi/MICmdCommands.cpp | 135 | 
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 0000000000000..4187b059b3955 --- /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; +} | 
