diff options
author | Greg Clayton <gclayton@apple.com> | 2013-10-21 20:04:47 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2013-10-21 20:04:47 +0000 |
commit | d65ef14df3cdfeb58251c261c20e23165c202dc6 (patch) | |
tree | d9541f5ed903061832a37dc0bc69d2e90a8cecdc | |
parent | bc4242114e3d8a47e7428b55b4c4c7651ed51b93 (diff) | |
download | bcm5719-llvm-d65ef14df3cdfeb58251c261c20e23165c202dc6.tar.gz bcm5719-llvm-d65ef14df3cdfeb58251c261c20e23165c202dc6.zip |
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
-rw-r--r-- | lldb/source/Breakpoint/BreakpointResolverName.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lldb/source/Breakpoint/BreakpointResolverName.cpp b/lldb/source/Breakpoint/BreakpointResolverName.cpp index 27f85653d64..c82dd5ee050 100644 --- a/lldb/source/Breakpoint/BreakpointResolverName.cpp +++ b/lldb/source/Breakpoint/BreakpointResolverName.cpp @@ -289,7 +289,17 @@ BreakpointResolverName::SearchCallback } 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()) { const uint32_t prologue_byte_size = sc.symbol->GetPrologueByteSize(); |