Pin
Public Member Functions
DEBUGGER_SHELL::ISHELL Class Reference

#include <debugger-shell.H>

List of all members.

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

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.

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.

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.

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:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator