dynamorio::drmemtrace::decode_cache_base_t Class Reference

#include <decode_cache.h>

Inheritance diagram for dynamorio::drmemtrace::decode_cache_base_t:
dynamorio::drmemtrace::decode_cache_t< DecodeInfo > dynamorio::drmemtrace::test_decode_cache_t< DecodeInfo >

Protected Member Functions

 decode_cache_base_t (unsigned int verbosity)
 
std::string init_module_mapper (const std::string &module_file_path, const std::string &alt_module_dir)
 
std::string find_mapped_trace_address (app_pc trace_pc, app_pc &decode_pc)
 
offline_file_type_t build_arch_file_type ()
 

Protected Attributes

bool use_module_mapper_ = false
 
unsigned int verbosity_ = 0
 

Detailed Description

Base class for dynamorio::drmemtrace::decode_cache_t.

This is used to allow sharing the static data members among all template instances of dynamorio::drmemtrace::decode_cache_t.

Constructor & Destructor Documentation

◆ decode_cache_base_t()

dynamorio::drmemtrace::decode_cache_base_t::decode_cache_base_t ( unsigned int  verbosity)
protected

Constructor for the base class, intentionally declared as protected so decode_cache_base_t cannot be instantiated directly but only via a derived class.

Member Function Documentation

◆ build_arch_file_type()

offline_file_type_t dynamorio::drmemtrace::decode_cache_base_t::build_arch_file_type ( )
protected

Returns the dynamorio::drmemtrace::offline_file_type_t arch bit that corresponds to the current build environment.

◆ find_mapped_trace_address()

std::string dynamorio::drmemtrace::decode_cache_base_t::find_mapped_trace_address ( app_pc  trace_pc,
app_pc &  decode_pc 
)
protected

Returns in the decode_pc reference parameter the address where the encoding for the instruction at trace_pc can be found.

Returns the empty string on success, or an error message.

◆ init_module_mapper()

std::string dynamorio::drmemtrace::decode_cache_base_t::init_module_mapper ( const std::string &  module_file_path,
const std::string &  alt_module_dir 
)
protected

Initializes the module_mapper_ object using make_module_mapper() and performs other bookkeeping and prerequisites.

Returns the empty string on success, or an error message.

Field Documentation

◆ use_module_mapper_

bool dynamorio::drmemtrace::decode_cache_base_t::use_module_mapper_ = false
protected

use_module_mapper_ describes whether we lookup the instr encodings from the module map, or alternatively from embedded-encodings in the trace.

Note that we store our instr encoding lookup strategy as a non-static data member, unlike module_mapper_t which is static and shared between all dynamorio::drmemtrace::decode_cache_t instances (even of different template types). Some analysis tools may deliberately want to look at instr encodings from the module mappings, but that strategy does not provide JIT encodings which are present only as embedded-encodings in the trace. In such a case, other concurrently running analysis tools should still be able to see encodings for JIT code.

◆ verbosity_

unsigned int dynamorio::drmemtrace::decode_cache_base_t::verbosity_ = 0
protected

Verbosity level for logs.


The documentation for this class was generated from the following file:
  • /home/runner/work/dynamorio/dynamorio/build_release-64/clients/include/drmemtrace/decode_cache.h