summaryrefslogtreecommitdiff
path: root/runtime/jit/debugger_interface.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/jit/debugger_interface.cc')
-rw-r--r--runtime/jit/debugger_interface.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/runtime/jit/debugger_interface.cc b/runtime/jit/debugger_interface.cc
index d2339a0c24..986003b544 100644
--- a/runtime/jit/debugger_interface.cc
+++ b/runtime/jit/debugger_interface.cc
@@ -410,7 +410,10 @@ static void DeleteJITCodeEntryInternal(const JITCodeEntry* entry) {
void AddNativeDebugInfoForDex(Thread* self, const DexFile* dexfile) {
MutexLock mu(self, g_dex_debug_lock);
DCHECK(dexfile != nullptr);
- const ArrayRef<const uint8_t> symfile(dexfile->Begin(), dexfile->Size());
+ // Compact dex files may store data past the size defined in the header.
+ const DexFile::Header& header = dexfile->GetHeader();
+ uint32_t size = std::max(header.file_size_, header.data_off_ + header.data_size_);
+ const ArrayRef<const uint8_t> symfile(dexfile->Begin(), size);
CreateJITCodeEntryInternal<DexNativeInfo>(symfile);
}