DynamoRIO / dynamorio

Dynamic Instrumentation Tool Platform
Other
2.59k stars 552 forks source link

i#6635 core filter, part 2: Add record filter to dr$sim launcher #6661

Closed derekbruening closed 5 months ago

derekbruening commented 5 months ago

Adds "-simulator_type record_filter" support to the dr$sim launcher. This builds on the templatized analyzer_multi_t to enable using record readers and record tools.

Adds a record_filter_tool_create() function and moves the filter creation out of record_filter_launcher.

Adds dr$sim launcher options -filter_stop_timestamp, -filter_cache_size, -filter_trace_types, -filter_marker_types, -trim_before_timestamp, and -trim_after_timestamp.

Changes the trim test to use the dr$sim launcher.

Adds a section on the record filter to the drmemtrace tools documentation.

Issue: #6635

derekbruening commented 5 months ago

x64 failure is drcachesim.threads-with-config file #3320:

Invalid trace entry type thread_exit (23) before a bundle
drcachesim: /home/runner/work/dynamorio/dynamorio/clients/drcachesim/reader/reader.cpp:238: virtual bool dynamorio::drmemtrace::reader_t::process_input_entry(): Assertion `type_is_instr(cur_ref_.instr.type) || cur_ref_.instr.type == TRACE_TYPE_INSTR_NO_FETCH' failed.