Skip to content

Commit d8de239

Browse files
Revert "[lldb] Improve unwinding for discontinuous functions (#111409)"
This reverts commit a89e016. This is being reverted because it broke the test: Unwind/trap_frame_sym_ctx.test /Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake/llvm-project/lldb/test/Shell/Unwind/trap_frame_sym_ctx.test:21:10: error: CHECK: expected string not found in input CHECK: frame #2: {{.*}}`main
1 parent 1c17484 commit d8de239

6 files changed

+7
-379
lines changed

lldb/source/Commands/CommandObjectTarget.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -3583,12 +3583,10 @@ class CommandObjectTargetModulesShowUnwind : public CommandObjectParsed {
35833583
addr_t start_addr = range.GetBaseAddress().GetLoadAddress(target);
35843584
if (abi)
35853585
start_addr = abi->FixCodeAddress(start_addr);
3586-
range.GetBaseAddress().SetLoadAddress(start_addr, target);
35873586

35883587
FuncUnwindersSP func_unwinders_sp(
35893588
sc.module_sp->GetUnwindTable()
3590-
.GetUncachedFuncUnwindersContainingAddress(range.GetBaseAddress(),
3591-
sc));
3589+
.GetUncachedFuncUnwindersContainingAddress(start_addr, sc));
35923590
if (!func_unwinders_sp)
35933591
continue;
35943592

lldb/source/Symbol/UnwindTable.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,12 @@ UnwindTable::GetAddressRange(const Address &addr, const SymbolContext &sc) {
9999
m_object_file_unwind_up->GetAddressRange(addr, range))
100100
return range;
101101

102+
// Check the symbol context
103+
if (sc.GetAddressRange(eSymbolContextFunction | eSymbolContextSymbol, 0,
104+
false, range) &&
105+
range.GetBaseAddress().IsValid())
106+
return range;
107+
102108
// Does the eh_frame unwind info has a function bounds for this addr?
103109
if (m_eh_frame_up && m_eh_frame_up->GetAddressRange(addr, range))
104110
return range;
@@ -107,12 +113,6 @@ UnwindTable::GetAddressRange(const Address &addr, const SymbolContext &sc) {
107113
if (m_debug_frame_up && m_debug_frame_up->GetAddressRange(addr, range))
108114
return range;
109115

110-
// Check the symbol context
111-
if (sc.GetAddressRange(eSymbolContextFunction | eSymbolContextSymbol, 0,
112-
false, range) &&
113-
range.GetBaseAddress().IsValid())
114-
return range;
115-
116116
return std::nullopt;
117117
}
118118

lldb/test/Shell/Unwind/Inputs/basic-block-sections-with-dwarf.s

-256
This file was deleted.

lldb/test/Shell/Unwind/Inputs/linux-x86_64.yaml

-26
This file was deleted.

lldb/test/Shell/Unwind/basic-block-sections-with-dwarf-static.test

-65
This file was deleted.

0 commit comments

Comments
 (0)