Pin
Classes | Public Member Functions
SHELL Class Reference

List of all members.

Classes

struct  AT_ICOUNT
struct  AT_MCOUNT
struct  EVENT
struct  HELP
struct  HELP_CATEGORY
struct  THREAD_DATA
struct  TRACEREC

Public Member Functions

BOOL Construct ()
BOOL Enable (const DEBUGGER_SHELL::STARTUP_ARGUMENTS &args)
unsigned AddExtendedHelpCategory (const std::string &name, const std::string &description, BOOL *alreadyExists)
void AddExtendedHelpMessage (unsigned category, const std::string &cmd, const std::string &description)
REG GetSkipOneRegister ()

Member Function Documentation

unsigned SHELL::AddExtendedHelpCategory ( const std::string &  name,
const std::string &  description,
BOOL *  alreadyExists 
) [inline, 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.

Implements DEBUGGER_SHELL::ISHELL.

void SHELL::AddExtendedHelpMessage ( unsigned  category,
const std::string &  cmd,
const std::string &  description 
) [inline, 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.

Implements DEBUGGER_SHELL::ISHELL.

BOOL SHELL::Enable ( const DEBUGGER_SHELL::STARTUP_ARGUMENTS args) [inline, 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.

Implements DEBUGGER_SHELL::ISHELL.

REG SHELL::GetSkipOneRegister ( ) [inline, 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.

Implements DEBUGGER_SHELL::ISHELL.


The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator