forked from OSchip/llvm-project
Fixed breakpoints to be able to be set on eSymbolTypeReExported symbols and resolve to the correct function. This allows setting a breakpoint on "memset" for iOS simulator binaries and the correct breakpoint will be set on "__platform_memset".
llvm-svn: 193114
This commit is contained in:
parent
bc4242114e
commit
d65ef14df3
|
|
@ -289,7 +289,17 @@ BreakpointResolverName::SearchCallback
|
||||||
}
|
}
|
||||||
else if (sc.symbol)
|
else if (sc.symbol)
|
||||||
{
|
{
|
||||||
break_addr = sc.symbol->GetAddress();
|
if (sc.symbol->GetType() == eSymbolTypeReExported)
|
||||||
|
{
|
||||||
|
const Symbol *actual_symbol = sc.symbol->ResolveReExportedSymbol(m_breakpoint->GetTarget());
|
||||||
|
if (actual_symbol)
|
||||||
|
break_addr = actual_symbol->GetAddress();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
break_addr = sc.symbol->GetAddress();
|
||||||
|
}
|
||||||
|
|
||||||
if (m_skip_prologue && break_addr.IsValid())
|
if (m_skip_prologue && break_addr.IsValid())
|
||||||
{
|
{
|
||||||
const uint32_t prologue_byte_size = sc.symbol->GetPrologueByteSize();
|
const uint32_t prologue_byte_size = sc.symbol->GetPrologueByteSize();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue