DCFG
Dynamic Control Flow Graph
 All Classes Functions
Public Member Functions | Static Public Member Functions | List of all members
dcfg_pin_api::DCFG_PIN_MANAGER Class Referenceabstract

Connection between a Pin tool and a DCFG_DATA object. More...

#include <dcfg_pin_api.H>

Public Member Functions

virtual bool dcfg_enable_knob () const
 Whether the '-dcfg' knob was used on the command-line.
 
virtual void activate ()=0
 Initialize and add Pin instrumentation.
 
virtual void activate (void *pinplay_engine)=0
 Initialize and add PinPlay instrumentation.
 
virtual dcfg_api::DCFG_DATA_CPTR get_dcfg_data () const =0
 Get access to DCFG data being constructed by the Pin tool.
 
virtual void set_cfg_collection (bool enable)=0
 Explicitly set CFG-data collection.
 

Static Public Member Functions

static DCFG_PIN_MANAGERnew_manager ()
 Create a new DCFG_PIN_MANAGER.
 

Detailed Description

Connection between a Pin tool and a DCFG_DATA object.

This is an interface; use DCFG_PIN_MANAGER::new_manager() to create an object that implements the interface.

Member Function Documentation

virtual void dcfg_pin_api::DCFG_PIN_MANAGER::activate ( )
pure virtual

Initialize and add Pin instrumentation.

Default behavior depends on settings of dcfg knobs.

virtual void dcfg_pin_api::DCFG_PIN_MANAGER::activate ( void *  pinplay_engine)
pure virtual

Initialize and add PinPlay instrumentation.

Default behavior depends on settings of dcfg knobs and whether logger, replayer or both are activated.

Parameters
[in]pinplay_enginepointer to existing pinplay engine or NULL if none.
virtual bool dcfg_pin_api::DCFG_PIN_MANAGER::dcfg_enable_knob ( ) const
virtual

Whether the '-dcfg' knob was used on the command-line.

Returns
true if '-dcfg' knob was used, false otherwise.
virtual dcfg_api::DCFG_DATA_CPTR dcfg_pin_api::DCFG_PIN_MANAGER::get_dcfg_data ( ) const
pure virtual

Get access to DCFG data being constructed by the Pin tool.

The returned DCFG will only be valid at the end of a region or program. There will not be a DCFG if an activate() method has not been called.

Returns
Pointer to associated DCFG data or NULL if none.
static DCFG_PIN_MANAGER* dcfg_pin_api::DCFG_PIN_MANAGER::new_manager ( )
static

Create a new DCFG_PIN_MANAGER.

This is a factory method to create a new object that implements the DCFG_PIN_MANAGER interface.

Returns
Pointer to new object. It can be freed with delete.
virtual void dcfg_pin_api::DCFG_PIN_MANAGER::set_cfg_collection ( bool  enable)
pure virtual

Explicitly set CFG-data collection.

This controls whether control-flow instructions are instrumented to build a CFG. This is independent of whether a DCFG file is written. If a DCFG file is written with CFG collection disabled, it will have no CFG data in it.

Parameters
[in]enableturn CFG collection on or off.

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