dynamorio::drmemtrace::kernel_filter_t Class Reference

#include <kernel_filter.h>

Inheritance diagram for dynamorio::drmemtrace::kernel_filter_t:
dynamorio::drmemtrace::record_filter_t::record_filter_func_t

Public Member Functions

void * parallel_shard_init (memtrace_stream_t *shard_stream, bool partial_trace_filter) override
 
bool parallel_shard_filter (trace_entry_t &entry, void *shard_data, record_filter_t::record_filter_info_t &record_filter_info) override
 
bool parallel_shard_exit (void *shard_data) override
 
uint64_t update_filetype (uint64_t filetype) override
 
- Public Member Functions inherited from dynamorio::drmemtrace::record_filter_t::record_filter_func_t
std::string get_error_string ()
 

Detailed Description

Removes all entries between and including the pairs of markers representing kernel execution: for syscalls (TRACE_MARKER_TYPE_SYSCALL_TRACE_START and TRACE_MARKER_TYPE_SYSCALL_TRACE_END), context switches (TRACE_MARKER_TYPE_CONTEXT_SWITCH_START and TRACE_MARKER_TYPE_CONTEXT_SWITCH_END), and hardware events (TRACE_MARKER_TYPE_HARDWARE_EVENT and TRACE_MARKER_TYPE_HARDWARE_CONTEXT_RETURN). If keep_syscalls is true, removes kernel execution entries except system call entries (including the other kernel execution nested within it).

Member Function Documentation

◆ parallel_shard_exit()

bool dynamorio::drmemtrace::kernel_filter_t::parallel_shard_exit ( void *  shard_data)
inlineoverridevirtual

Invoked when all trace_entry_t in a shard have been processed by parallel_shard_filter(). shard_data is same as what was returned by parallel_shard_init().

Implements dynamorio::drmemtrace::record_filter_t::record_filter_func_t.

◆ parallel_shard_filter()

bool dynamorio::drmemtrace::kernel_filter_t::parallel_shard_filter ( trace_entry_t entry,
void *  shard_data,
record_filter_t::record_filter_info_t record_filter_info 
)
inlineoverridevirtual

Invoked for each trace_entry_t in the shard. It returns whether or not this entry should be included in the result trace. shard_data is same as what was returned by parallel_shard_init(). The given entry is included in the result trace iff all provided dynamorio::drmemtrace::record_filter_t::record_filter_func_t return true. The entry parameter can also be modified by the record_filter_func_t. The passed entry is not guaranteed to be the original one from the trace if other filter tools are present, and may include changes made by other tools. An error is indicated by setting error_string_ to a non-empty value. record_filter_info is the interface used by record_filter to share data with its filters.

Implements dynamorio::drmemtrace::record_filter_t::record_filter_func_t.

◆ parallel_shard_init()

void* dynamorio::drmemtrace::kernel_filter_t::parallel_shard_init ( memtrace_stream_t shard_stream,
bool  partial_trace_filter 
)
inlineoverridevirtual

Invoked for each shard prior to calling parallel_shard_filter() on any entry. The returned pointer is passed to all invocations of parallel_shard_filter() and parallel_shard_exit(). This routine can be used to initialize state for each shard. partial_trace_filter denotes whether the trace will be filtered only partially, e.g. due to stop_timestamp.

Implements dynamorio::drmemtrace::record_filter_t::record_filter_func_t.

◆ update_filetype()

uint64_t dynamorio::drmemtrace::kernel_filter_t::update_filetype ( uint64_t  filetype)
inlineoverridevirtual

If a filter modifies the file type of a trace, its changes should be made here, so they are visible to the record_filter even if the trace_entry_t containing the file type marker is not modified directly by the filter.

Reimplemented from dynamorio::drmemtrace::record_filter_t::record_filter_func_t.


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