- Main Page
- Modules
- Classes

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# DEBUGGER_SHELL::ISHELL Class Reference
[DEBUGGER_SHELL]

`#include <debugger-shell.H>`

Inherited by SHELL.

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.

## Constructor & Destructor Documentation

DEBUGGER_SHELL::ISHELL::~ISHELL | ( |  | ) | `[inline, pure virtual]`

| Destroys the debugger shell object.

## 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]` | name | The name of the category.
  `[in]` | description | Describes this category of extended commands.
  `[out]` | alreadyExists | If 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.

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]` | category | The category for this extended command. This can either be one of the predefined HELP_CATEGORY constants or a value returned by AddExtendedHelpCategory().
  `[in]` | cmd | The name of a tool's extended command.
  `[in]` | description | Describes what the command does.

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]` | args | Arguments that customize the debugger shell.

Returns:
  TRUE on success. If there is an error, a diagnostic is printed and this method returns FALSE.

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.

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

- debugger-shell.H