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:
Greg Clayton 2010-10-04 17:26:49 +00:00
parent 8e4c19ac44
commit 0d9c993401
1 changed files with 27 additions and 0 deletions

View File

@ -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();
}