From c1fcfce7171db85e905b64880060775bc1b3eeae Mon Sep 17 00:00:00 2001 From: Robert O'Callahan Date: Thu, 5 May 2016 08:40:26 +1200 Subject: [PATCH] Suppress divergence warnings during 'rr dump' --- src/DumpCommand.cc | 6 ++++-- src/TraceStream.cc | 5 +++-- src/TraceStream.h | 4 +++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/DumpCommand.cc b/src/DumpCommand.cc index b1bbcd7ca22..ad20c265e1e 100644 --- a/src/DumpCommand.cc +++ b/src/DumpCommand.cc @@ -175,7 +175,8 @@ static void dump_events_matching(TraceReader& trace, const DumpFlags& flags, while (true) { TraceReader::MappedData data; bool found; - KernelMapping km = trace.read_mapped_region(&data, &found); + KernelMapping km = + trace.read_mapped_region(&data, &found, TraceReader::DONT_VALIDATE); if (!found) { break; } @@ -223,7 +224,8 @@ static void dump_events_matching(TraceReader& trace, const DumpFlags& flags, } while (true) { TraceReader::MappedData data; - KernelMapping km = trace.read_mapped_region(&data); + KernelMapping km = trace.read_mapped_region(&data, nullptr, + TraceReader::DONT_VALIDATE); if (km.size() == 0) { break; } diff --git a/src/TraceStream.cc b/src/TraceStream.cc index cac63679290..db933ae9f16 100644 --- a/src/TraceStream.cc +++ b/src/TraceStream.cc @@ -397,7 +397,8 @@ TraceWriter::RecordInTrace TraceWriter::write_mapped_region( : DONT_RECORD_IN_TRACE; } -KernelMapping TraceReader::read_mapped_region(MappedData* data, bool* found) { +KernelMapping TraceReader::read_mapped_region(MappedData* data, bool* found, + ValidateSourceFile validate) { if (found) { *found = false; } @@ -435,7 +436,7 @@ KernelMapping TraceReader::read_mapped_region(MappedData* data, bool* found) { if (backing_file_name[0] != '/') { backing_file_name = dir() + "/" + backing_file_name; } - if (!is_clone) { + if (!is_clone && validate == VALIDATE) { struct stat backing_stat; if (stat(backing_file_name.c_str(), &backing_stat)) { FATAL() << "Failed to stat " << backing_file_name diff --git a/src/TraceStream.h b/src/TraceStream.h index adc0b1aae77..98103bc79d3 100644 --- a/src/TraceStream.h +++ b/src/TraceStream.h @@ -240,7 +240,9 @@ class TraceReader : public TraceStream { * If |found| is non-null, set *found to indicate whether a descriptor * was found for the current event. */ - KernelMapping read_mapped_region(MappedData* data, bool* found = nullptr); + enum ValidateSourceFile { VALIDATE, DONT_VALIDATE }; + KernelMapping read_mapped_region(MappedData* data, bool* found = nullptr, + ValidateSourceFile validate = VALIDATE); /** * Peek at the next mapping. Returns an empty region if there isn't one for