Skip to content

Commit 7e9b8f6

Browse files
authored
Merge pull request #9524 from augusto2112/fix-slide
Cherry-picks slide fix
2 parents f4146ce + cf9acce commit 7e9b8f6

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

lldb/source/Plugins/LanguageRuntime/Swift/LLDBMemoryReader.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -639,22 +639,22 @@ LLDBMemoryReader::resolveRemoteAddress(uint64_t address) const {
639639
file_address, object_file->GetFileSpec().GetFilename());
640640
return {};
641641
}
642-
auto sec = sec_list->GetSectionAtIndex(0);
643-
auto sec_file_address = sec->GetFileAddress();
644-
auto sec_load_address = sec->GetLoadBaseAddress(&m_process.GetTarget());
642+
SectionSP sec = sec_list->GetSectionAtIndex(0);
643+
addr_t sec_file_address = sec->GetFileAddress();
644+
addr_t sec_load_address = sec->GetLoadBaseAddress(&m_process.GetTarget());
645645

646-
bool overflow = false;
647-
auto slide =
648-
llvm::SaturatingAdd(sec_load_address, -sec_file_address, &overflow);
649-
if (overflow) {
646+
if (sec_load_address < sec_file_address) {
650647
LLDB_LOG(log,
651-
"[MemoryReader] section load address {0:x} - file address {1:x} "
652-
"overflows",
648+
"[MemoryReader] section load address {0:x} is smaller than "
649+
"section file address {1:x}",
653650
sec_load_address, sec_file_address);
654651
return {};
655652
}
656653

657-
auto virtual_address = llvm::SaturatingAdd(file_address, slide, &overflow);
654+
addr_t slide = sec_load_address - sec_file_address;
655+
656+
bool overflow = false;
657+
addr_t virtual_address = llvm::SaturatingAdd(file_address, slide, &overflow);
658658
if (overflow) {
659659
LLDB_LOG(log, "[MemoryReader] file address {0:x} + slide {1:x} overflows",
660660
sec_load_address, sec_file_address);

0 commit comments

Comments
 (0)