Add debug code for saving dex file inputs
Also improve some other logging.
Bug: 13078746
Change-Id: Ic7a7c201b935e2b117ddc38b652cf39152fe42dc
diff --git a/dex2oat/dex2oat.cc b/dex2oat/dex2oat.cc
index dab419f..ce339bf 100644
--- a/dex2oat/dex2oat.cc
+++ b/dex2oat/dex2oat.cc
@@ -1043,6 +1043,21 @@
}
}
+ const bool kSaveDexInput = false;
+ if (kSaveDexInput) {
+ for (size_t i = 0; i < dex_files.size(); ++i) {
+ const DexFile* dex_file = dex_files[i];
+ std::string tmp_file_name(StringPrintf("/data/local/tmp/dex2oat.%d.%d.dex", getpid(), i));
+ UniquePtr<File> tmp_file(OS::CreateEmptyFile(tmp_file_name.c_str()));
+ if (tmp_file.get() == nullptr) {
+ PLOG(ERROR) << "Failed to open file " << tmp_file_name << ". Try: adb shell chmod 777 /data/local/tmp";
+ continue;
+ }
+ tmp_file->WriteFully(dex_file->Begin(), dex_file->Size());
+ LOG(INFO) << "Wrote input to " << tmp_file_name;
+ }
+ }
+
// Ensure opened dex files are writable for dex-to-dex transformations.
for (const auto& dex_file : dex_files) {
if (!dex_file->EnableWrite()) {