Merge "Fix symbol resolution within a dex file."

am: 0ce76f910b

Change-Id: I2cf800172e5e0a07e8b084e3176215ba4c96b3d2
This commit is contained in:
Christopher Ferris 2018-02-02 04:00:45 +00:00 committed by android-build-merger
commit 4132278874
3 changed files with 8 additions and 7 deletions

View File

@ -52,9 +52,9 @@ DexFile* DexFiles::GetDexFile(uint64_t dex_file_offset, MapInfo* info) {
return dex_file;
}
void DexFiles::GetMethodInformation(uint64_t dex_offset, MapInfo* info, std::string* method_name,
uint64_t* method_offset) {
DexFile* dex_file = GetDexFile(dex_offset, info);
void DexFiles::GetMethodInformation(uint64_t dex_file_offset, uint64_t dex_offset, MapInfo* info,
std::string* method_name, uint64_t* method_offset) {
DexFile* dex_file = GetDexFile(dex_file_offset, info);
if (dex_file != nullptr) {
dex_file->GetMethodInformation(dex_offset, method_name, method_offset);
}

View File

@ -95,7 +95,8 @@ void Unwinder::FillInDexFrame() {
}
#if !defined(NO_LIBDEXFILE_SUPPORT)
dex_files_->GetMethodInformation(dex_offset, info, &frame->function_name, &frame->function_offset);
dex_files_->GetMethodInformation(dex_pc - dex_offset, dex_offset, info, &frame->function_name,
&frame->function_offset);
#endif
}

View File

@ -38,10 +38,10 @@ class DexFiles {
explicit DexFiles(std::shared_ptr<Memory>& memory);
~DexFiles();
DexFile* GetDexFile(uint64_t dex_offset, MapInfo* info);
DexFile* GetDexFile(uint64_t dex_file_offset, MapInfo* info);
void GetMethodInformation(uint64_t dex_offset, MapInfo* info, std::string* method_name,
uint64_t* method_offset);
void GetMethodInformation(uint64_t dex_file_offset, uint64_t dex_offset, MapInfo* info,
std::string* method_name, uint64_t* method_offset);
void SetArch(ArchEnum arch);