Page MenuHomePhabricator

Add ModuleInfo to TracePC
AcceptedPublic

Authored by aarongreen on Jan 12 2021, 9:30 AM.

Details

Summary

This change adds a ModuleInfo struct to fuzzer::TracePC, and functions to populate such structs with details about the currently loaded modules.

It also offsets some of the space increase of storing the hash in the PC tables by removing some unused fields from the Counter regions.

Diff Detail

Event Timeline

aarongreen requested review of this revision.Jan 12 2021, 9:30 AM
aarongreen created this revision.
Herald added a project: Restricted Project. · View Herald TranscriptJan 12 2021, 9:30 AM
Herald added a subscriber: Restricted Project. · View Herald Transcript
aarongreen updated this revision to Diff 321772.Feb 5 2021, 8:40 AM
morehouse added inline comments.Feb 5 2021, 11:30 AM
compiler-rt/lib/fuzzer/FuzzerDSORelative.h
28 ↗(On Diff #321772)

Please add comments explaining each struct member.

compiler-rt/lib/fuzzer/FuzzerTracePC.cpp
50

reinterpret_cast

60

reinterpret_cast

62
260

Please add a comment explaining why we calculate LastFeature this way.

aarongreen updated this revision to Diff 327897.Mar 3 2021, 1:03 PM
aarongreen marked 5 inline comments as done.

Addressing morehouse's comments. Also adjusted size and stack depth functions in TracePC to address some concerns that are in the following change (D94514), but are rleated to files and functions being changed here.

compiler-rt/lib/fuzzer/FuzzerTracePC.cpp
50

Used Module::Size() instead.

60

static_cast works, whereas reinterpret_cast does not.

morehouse accepted this revision.Mar 3 2021, 2:27 PM
morehouse added inline comments.
compiler-rt/lib/fuzzer/FuzzerTracePC.cpp
59

Please fix this lint.

251
This revision is now accepted and ready to land.Mar 3 2021, 2:27 PM

fyi: I'd like D97992 to land first; and for this change to be rebased on top of that.

aarongreen marked an inline comment as done.

Changed DsoInfo to ModuleInfo (and changed PrintModuleInfo to PrintModuleSummary). Moved asserts in CollectFeatures to unit tests.

aarongreen retitled this revision from Add DSO functions to TracePC to Add ModuleInfo to TracePC.
aarongreen edited the summary of this revision. (Show Details)

Moved the ModuleInfo struct from FuzzerModuleRelative.h to FuzzerTracePC.h and added MoudleInfoByHash. Along with the decision in D94514 to not support relative features when -fork=1, this obviates the need for D94508 and D94509.