import-trace: add --cover-memorymap switch

This compatibility-breaking change introduces the --cover-memorymap
switch to import-trace.  It makes a previous behavior optional, which
enforces DB entries for addresses covered by the --memorymap that
don't occur in the trace.  This creates a continuous and potentially
very large fault space in the DB, which never made any real sense.

Change-Id: I47e412bb621b595748c1772e02d2577308be8664
This commit is contained in:
Horst Schirmeier
2021-03-28 08:52:34 +02:00
parent 6598520c0a
commit 3b7404de43
3 changed files with 13 additions and 5 deletions

View File

@ -118,6 +118,9 @@ int main(int argc, char *argv[]) {
CommandLine::option_handle MEMORYMAP =
cmd.addOption("m", "memorymap", Arg::Required,
"-m/--memorymap \tMemory map to intersect with trace (if used more than once, the union of all maps will be used; default: UNSET)");
CommandLine::option_handle COVER_MEMORYMAP =
cmd.addOption("", "cover-memorymap", Arg::None,
"--cover-memorymap \tEnforces DB entries for addresses covered by the --memorymap that don't occur in the trace");
CommandLine::option_handle NO_DELETE =
cmd.addOption("", "no-delete", Arg::None,
"--no-delete \tAssume there are no DB entries for this variant/benchmark, don't issue a DELETE");
@ -252,6 +255,7 @@ int main(int argc, char *argv[]) {
importer->set_sanitychecks(cmd[ENABLE_SANITYCHECKS]);
importer->set_extended_trace(cmd[EXTENDED_TRACE]);
importer->set_import_write_ecs(!cmd[NO_WRITE_ECS]);
importer->set_cover_memorymap(cmd[COVER_MEMORYMAP]);
if (!importer->init(variant, benchmark, db)) {
LOG << "importer->init() failed" << endl;