Interface to information about a binary image within a process. More...
#include <dcfg_api.H>
Public Member Functions | |
virtual DCFG_ID | get_process_id () const =0 |
Get the process ID. | |
virtual DCFG_ID | get_image_id () const =0 |
Get the image ID. | |
virtual const std::string * | get_filename () const =0 |
Get the filename of the image. | |
virtual UINT64 | get_base_address () const =0 |
Get base address of image. | |
virtual UINT64 | get_size () const =0 |
Get size of image. | |
virtual UINT32 | get_basic_block_ids_by_addr (UINT64 addr, DCFG_ID_CONTAINER &node_ids) const =0 |
Get basic block ID(s) containing given address in this image. | |
![]() | |
virtual UINT32 | get_routine_ids (DCFG_ID_CONTAINER &node_ids) const =0 |
Get the set of routine IDs. | |
virtual DCFG_ROUTINE_CPTR | get_routine_info (DCFG_ID routine_id) const =0 |
Get access to data for a routine. | |
![]() | |
virtual UINT32 | get_loop_ids (DCFG_ID_CONTAINER &node_ids) const =0 |
Get the set of loop IDs. | |
virtual DCFG_LOOP_CPTR | get_loop_info (DCFG_ID loop_id) const =0 |
Get access to data for a loop. | |
![]() | |
virtual UINT32 | get_basic_block_ids (DCFG_ID_CONTAINER &node_ids) const =0 |
Get IDs of all basic blocks in the structure. | |
virtual UINT32 | get_internal_edge_ids (DCFG_ID_CONTAINER &edge_ids) const =0 |
Get list of internal edge IDs. | |
virtual UINT32 | get_inbound_edge_ids (DCFG_ID_CONTAINER &edge_ids) const =0 |
Get list of in-bound edge IDs. | |
virtual UINT32 | get_outbound_edge_ids (DCFG_ID_CONTAINER &edge_ids) const =0 |
Get list of out-bound edge IDs. | |
virtual UINT64 | get_instr_count () const =0 |
Get the total dynamic instruction count. | |
virtual UINT64 | get_instr_count_for_thread (UINT32 thread_id) const =0 |
Get per-thread dynamic instruction count. | |
Interface to information about a binary image within a process.
|
pure virtual |
Get base address of image.
|
pure virtual |
Get basic block ID(s) containing given address in this image.
It is possible to get zero or more IDs returned: zero if the address appears in no basic blocks, one if it appears in exactly one block in one image, and more than one if it is not unique. Basic blocks may not be unique if an image uses self-modifying code (SMC) or other mechanisms that replace code regions. For most images, this will not be the case, and addresses will be unique for a given image.
node_ids
. [in] | addr | Virtual address that can appear anywhere within a basic block. |
[out] | node_ids | Container to which basic-block IDs are added. Previous contents of the container are not emptied by this call, so it should be emptied by the programmer before the call if desired. The programmer can use any implementation of DCFG_ID_CONTAINER: DCFG_ID_VECTOR, DCFG_ID_SET, etc. |
|
pure virtual |
Get the filename of the image.
|
pure virtual |
Get the image ID.
|
pure virtual |
Get the process ID.
|
pure virtual |
Get size of image.