forked from OSchip/llvm-project
Fixed and issue where we weren't seeing inlined functions anymore. We also now show the correct pc-offset within the inlined function.
llvm-svn: 115522
This commit is contained in:
parent
8e4c19ac44
commit
0d9c993401
|
@ -956,6 +956,20 @@ Debugger::FormatPrompt
|
|||
if (cstr)
|
||||
{
|
||||
s.PutCString(cstr);
|
||||
|
||||
if (sc->block)
|
||||
{
|
||||
Block *inline_block = sc->block->GetContainingInlinedBlock ();
|
||||
if (inline_block)
|
||||
{
|
||||
const InlineFunctionInfo *inline_info = sc->block->GetInlinedFunctionInfo();
|
||||
if (inline_info)
|
||||
{
|
||||
s.PutCString(" [inlined] ");
|
||||
inline_info->GetName().Dump(&s);
|
||||
}
|
||||
}
|
||||
}
|
||||
var_success = true;
|
||||
}
|
||||
}
|
||||
|
@ -1083,7 +1097,20 @@ Debugger::FormatPrompt
|
|||
if (sc)
|
||||
{
|
||||
if (sc->function)
|
||||
{
|
||||
func_addr = sc->function->GetAddressRange().GetBaseAddress();
|
||||
if (sc->block)
|
||||
{
|
||||
// Check to make sure we aren't in an inline
|
||||
// function. If we are, use the inline block
|
||||
// range that contains "format_addr" since
|
||||
// blocks can be discontiguous.
|
||||
Block *inline_block = sc->block->GetContainingInlinedBlock ();
|
||||
AddressRange inline_range;
|
||||
if (inline_block && inline_block->GetRangeContainingAddress (format_addr, inline_range))
|
||||
func_addr = inline_range.GetBaseAddress();
|
||||
}
|
||||
}
|
||||
else if (sc->symbol && sc->symbol->GetAddressRangePtr())
|
||||
func_addr = sc->symbol->GetAddressRangePtr()->GetBaseAddress();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue