decompiler  1.0.0
Public Member Functions | List of all members
ghidra::BreakTable Class Referenceabstract

A collection of breakpoints for the emulator. More...

#include <emulate.hh>

Inheritance diagram for ghidra::BreakTable:
ghidra::BreakTableCallBack

Public Member Functions

virtual void setEmulate (Emulate *emu)=0
 Associate a particular emulator with breakpoints in this table. More...
 
virtual bool doPcodeOpBreak (PcodeOpRaw *curop)=0
 Invoke any breakpoints associated with this particular pcodeop. More...
 
virtual bool doAddressBreak (const Address &addr)=0
 Invoke any breakpoints associated with this machine address. More...
 

Detailed Description

A collection of breakpoints for the emulator.

A BreakTable keeps track of an arbitrary number of breakpoints for an emulator. Breakpoints are either associated with a particular user-defined pcode op, or with a specific machine address (as in a standard debugger). Through the BreakTable object, an emulator can invoke breakpoints through the two methods

depending on the type of breakpoint they currently want to invoke

Member Function Documentation

◆ doAddressBreak()

virtual bool ghidra::BreakTable::doAddressBreak ( const Address addr)
pure virtual

Invoke any breakpoints associated with this machine address.

Within the table, the first breakpoint which is designed to work with at this address is invoked. If there was a breakpoint, and if it was designed to replace the action of the machine instruction, then true is returned.

Parameters
addris address to test for breakpoints
Returns
true if the machine instruction has been replaced by a breakpoint

Implemented in ghidra::BreakTableCallBack.

Referenced by ghidra::EmulatePcodeCache::executeInstruction().

◆ doPcodeOpBreak()

virtual bool ghidra::BreakTable::doPcodeOpBreak ( PcodeOpRaw curop)
pure virtual

Invoke any breakpoints associated with this particular pcodeop.

Within the table, the first breakpoint which is designed to work with this particular kind of pcode operation is invoked. If there was a breakpoint and it was designed to replace the action of the pcode op, then true is returned.

Parameters
curopis the instance of a pcode op to test for breakpoints
Returns
true if the action of the pcode op is performed by the breakpoint

Implemented in ghidra::BreakTableCallBack.

Referenced by ghidra::EmulatePcodeCache::executeCallother().

◆ setEmulate()

virtual void ghidra::BreakTable::setEmulate ( Emulate emu)
pure virtual

Associate a particular emulator with breakpoints in this table.

Breakpoints may need access to the context in which they are invoked. This routine provides the context for all breakpoints in the table.

Parameters
emuis the Emulate context

Implemented in ghidra::BreakTableCallBack.

Referenced by ghidra::EmulatePcodeCache::EmulatePcodeCache().


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