Dump profile checksums
Also dump profile checksums. This helps diagnose checksum mismatches.
Test: manual
Bug: 70292748
Change-Id: Iaab4b34378240a265d11d196dcad6db12dc3545d
diff --git a/profman/profile_assistant_test.cc b/profman/profile_assistant_test.cc
index 9494f04..72c285a 100644
--- a/profman/profile_assistant_test.cc
+++ b/profman/profile_assistant_test.cc
@@ -1147,18 +1147,18 @@
// Check the actual contents of the dump by looking at the offsets of the methods.
for (uint32_t m : hot_methods) {
const size_t pos = output.find(std::to_string(m) + "[],", hot_offset);
- ASSERT_NE(pos, std::string::npos);
- EXPECT_LT(pos, startup_offset);
+ ASSERT_NE(pos, std::string::npos) << output;
+ EXPECT_LT(pos, startup_offset) << output;
}
for (uint32_t m : startup_methods) {
const size_t pos = output.find(std::to_string(m) + ",", startup_offset);
- ASSERT_NE(pos, std::string::npos);
- EXPECT_LT(pos, post_startup_offset);
+ ASSERT_NE(pos, std::string::npos) << output;
+ EXPECT_LT(pos, post_startup_offset) << output;
}
for (uint32_t m : post_startup_methods) {
const size_t pos = output.find(std::to_string(m) + ",", post_startup_offset);
- ASSERT_NE(pos, std::string::npos);
- EXPECT_LT(pos, classes_offset);
+ ASSERT_NE(pos, std::string::npos) << output;
+ EXPECT_LT(pos, classes_offset) << output;
}
}
diff --git a/runtime/jit/profile_compilation_info.cc b/runtime/jit/profile_compilation_info.cc
index f5c2715..7c21916 100644
--- a/runtime/jit/profile_compilation_info.cc
+++ b/runtime/jit/profile_compilation_info.cc
@@ -1675,6 +1675,7 @@
os << (multidex_suffix.empty() ? kFirstDexFileKeySubstitute : multidex_suffix);
}
os << " [index=" << static_cast<uint32_t>(dex_data->profile_index) << "]";
+ os << " [checksum=" << std::hex << dex_data->checksum << "]" << std::dec;
const DexFile* dex_file = nullptr;
if (dex_files != nullptr) {
for (size_t i = 0; i < dex_files->size(); i++) {