Index: lldb/trunk/source/Target/StackFrameList.cpp =================================================================== --- lldb/trunk/source/Target/StackFrameList.cpp +++ lldb/trunk/source/Target/StackFrameList.cpp @@ -355,7 +355,21 @@ // address, else we decrement the address by one to get the correct // location. if (idx > 0) - curr_frame_address.Slide(-1); + { + if (curr_frame_address.GetOffset() == 0) + { + // If curr_frame_address points to the first address in a section then after + // adjustment it will point to an other section. In that case resolve the + // address again to the correct section plus offset form. + TargetSP target = m_thread.CalculateTarget(); + addr_t load_addr = curr_frame_address.GetOpcodeLoadAddress(target.get()); + curr_frame_address.SetOpcodeLoadAddress(load_addr - 1, target.get()); + } + else + { + curr_frame_address.Slide(-1); + } + } SymbolContext next_frame_sc; Address next_frame_address;