summaryrefslogtreecommitdiff
path: root/runtime/class_linker.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2023-06-07 10:40:55 +0100
committer Nicolas Geoffray <ngeoffray@google.com> 2023-06-07 13:26:24 +0000
commitc97619f3a27b5d70cd5f6f30853312c29543e41d (patch)
tree78a0eb57262490284f6d065ce045662fda90ee82 /runtime/class_linker.cc
parent534fb7ac092210c9b0c4927a924c330979e3fd4b (diff)
Add more debugging logs for b/279117765.
Test: test.py Bug: 279117765 Change-Id: I8514db54290303362ba6be84c8a6b09b0c3aaad1
Diffstat (limited to 'runtime/class_linker.cc')
-rw-r--r--runtime/class_linker.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index b4c279bdb3..d4e4c3e565 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -4289,6 +4289,14 @@ ObjPtr<mirror::DexCache> ClassLinker::FindDexCache(Thread* self, const OatDexFil
return dex_cache;
}
// Failure, dump diagnostic and abort.
+ if (dex_cache_data == nullptr) {
+ LOG(FATAL_WITHOUT_ABORT) << "NULL dex_cache_data";
+ } else {
+ LOG(FATAL_WITHOUT_ABORT)
+ << "dex_cache_data=" << dex_cache_data
+ << " weak_root=" << dex_cache_data->weak_root
+ << " decoded_weak_root=" << self->DecodeJObject(dex_cache_data->weak_root);
+ }
for (const auto& entry : dex_caches_) {
const DexCacheData& data = entry.second;
if (DecodeDexCacheLocked(self, &data) != nullptr) {
@@ -4300,7 +4308,10 @@ ObjPtr<mirror::DexCache> ClassLinker::FindDexCache(Thread* self, const OatDexFil
<< " oat_dex_file=" << other_oat_dex_file
<< " oat_file=" << oat_file
<< " oat_location=" << (oat_file == nullptr ? "null" : oat_file->GetLocation())
- << " dex_file=" << &entry.first;
+ << " dex_file=" << &entry.first
+ << " weak_root=" << data.weak_root
+ << " decoded_weak_root=" << self->DecodeJObject(data.weak_root)
+ << " dex_cache_data=" << &data;
}
}
LOG(FATAL) << "Failed to find DexCache for OatDexFile "