dynamorio::drmemtrace::instr_decode_info_t Class Reference

#include <decode_cache.h>

Inheritance diagram for dynamorio::drmemtrace::instr_decode_info_t:
dynamorio::drmemtrace::decode_info_base_t

Private Member Functions

std::string set_decode_info_derived (void *dcontext, const dynamorio::drmemtrace::_memref_instr_t &memref_instr, instr_t *instr, app_pc decode_pc) override
 

Additional Inherited Members

- Public Member Functions inherited from dynamorio::drmemtrace::decode_info_base_t
void set_decode_info (void *dcontext, const dynamorio::drmemtrace::_memref_instr_t &memref_instr, instr_t *instr, app_pc decode_pc)
 
bool is_valid () const
 
std::string get_error_string () const
 

Detailed Description

Decode info including the full decoded instr_t. This should be used with a dynamorio::drmemtrace::decode_cache_t constructed with include_decoded_instr_ and persist_decoded_instr_ set to true.

Member Function Documentation

◆ set_decode_info_derived()

std::string dynamorio::drmemtrace::instr_decode_info_t::set_decode_info_derived ( void *  dcontext,
const dynamorio::drmemtrace::_memref_instr_t memref_instr,
instr_t instr,
app_pc  decode_pc 
)
overrideprivatevirtual

Sets the decoding info fields as required by the derived class, based on the provided instr_t which was allocated using the provided opaque dcontext for the provided memref_instr, decoded from raw bytes at the provided address in decode_pc (raw bytes address is valid only for this call). Derived classes must implement this virtual function. Note that this cannot be invoked directly as it is private, but only through set_decode_info() which does other required bookkeeping.

This is meant for use with dynamorio::drmemtrace::decode_cache_t, which will invoke set_decode_info() for each new decoded instruction.

The responsibility for invoking instr_destroy() on the provided instr lies with this dynamorio::drmemtrace::decode_info_base_t object, unless the dynamorio::drmemtrace::decode_cache_t was constructed with persist_decoded_instr_ set to false, in which case no heap allocation takes place.

The provided instr will be nullptr if the dynamorio::drmemtrace::decode_cache_t was constructed with include_decoded_instr_ set to false.

Returns an empty string if successful, or the error description.

Implements dynamorio::drmemtrace::decode_info_base_t.


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