forked from OSchip/llvm-project
Fix address adjusment in stack frame inline block lookup
When the current address is pointing 1 (unit) over the end of a section the we have to do a section lookup after making the adjusment of the current address. Differential revision: http://reviews.llvm.org/D10124 llvm-svn: 238737
This commit is contained in:
parent
1699eca119
commit
0f8452ba2e
|
@ -355,7 +355,21 @@ StackFrameList::GetFramesUpTo(uint32_t end_idx)
|
|||
// 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;
|
||||
|
|
Loading…
Reference in New Issue