Pin
Public Member Functions | List of all members
DEBUGGER_SHELL::ISHELL Class Referenceabstract

#include <debugger-shell.H>

Public Member Functions

virtual BOOL Enable (const STARTUP_ARGUMENTS &args)=0
 
virtual unsigned AddExtendedHelpCategory (const std::string &name, const std::string &description, BOOL *alreadyExists)=0
 
virtual void AddExtendedHelpMessage (unsigned category, const std::string &cmd, const std::string &description)=0
 
virtual REG GetSkipOneRegister ()=0
 
virtual ~ISHELL ()=0
 

Detailed Description

The public interface to the debugger shell.

Member Function Documentation

◆ AddExtendedHelpCategory()

virtual unsigned DEBUGGER_SHELL::ISHELL::AddExtendedHelpCategory ( const std::string &  name,
const std::string &  description,
BOOL *  alreadyExists 
)
pure virtual

Tools that use the debugger shell may still implement their own extended debugger commands by using PIN_AddDebugInterpreter(). The debugger shell provides a way for such tools to include a help message for these extended commands in the help message that the debugger shell prints. Tools can use AddExtendedHelpCategory() to define their own category of help messages.

Parameters
[in]nameThe name of the category.
[in]descriptionDescribes this category of extended commands.
[out]alreadyExistsIf not NULL, receives TRUE if a tool already added a custom category for name. In this case, the debugger shell uses the previous description.
Returns
The ID for this custom category. If a tool already added a category named name, that previous category ID is returned.

Implemented in SHELL.

◆ AddExtendedHelpMessage()

virtual void DEBUGGER_SHELL::ISHELL::AddExtendedHelpMessage ( unsigned  category,
const std::string &  cmd,
const std::string &  description 
)
pure virtual

Adds a help message for an extended command that is implemented by the layered tool. See also AddExtendedHelpCategory() for more information on adding extended debugger commands.

Parameters
[in]categoryThe category for this extended command. This can either be one of the predefined HELP_CATEGORY constants or a value returned by AddExtendedHelpCategory().
[in]cmdThe name of a tool's extended command.
[in]descriptionDescribes what the command does.

Implemented in SHELL.

◆ Enable()

virtual BOOL DEBUGGER_SHELL::ISHELL::Enable ( const STARTUP_ARGUMENTS args)
pure virtual

This method must be called once, typically from the tool's main() function. It enables the Pin instrumentation which implements the debugger extensions.

Parameters
[in]argsArguments that customize the debugger shell.
Returns
TRUE on success. If there is an error, a diagnostic is printed and this method returns FALSE.

Implemented in SHELL.

◆ GetSkipOneRegister()

virtual REG DEBUGGER_SHELL::ISHELL::GetSkipOneRegister ( )
pure virtual

Tools that override the default instrumentation with ICUSTOM_INSTRUMENTOR may need a virtual register to hold the "skip one" flag. This method provides the register number to use for this.

Returns
The Pin virtual register to use for the "skip one" flag. This is one of the REG_INST_Gn registers.

Implemented in SHELL.


The documentation for this class was generated from the following file: