summaryrefslogtreecommitdiff
path: root/source/Breakpoint/BreakpointResolverName.cpp
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2013-11-06 16:48:53 +0000
committerEd Maste <emaste@FreeBSD.org>2013-11-06 16:48:53 +0000
commitf21a844f60ae6c74fcf1fddca32461acce3c1ee0 (patch)
tree56d79f94966870db1cecd65a7264510a25fd1cba /source/Breakpoint/BreakpointResolverName.cpp
parent37d22554be9f5a677dad2a95b7ef22fe59c66a8a (diff)
Notes
Diffstat (limited to 'source/Breakpoint/BreakpointResolverName.cpp')
-rw-r--r--source/Breakpoint/BreakpointResolverName.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/source/Breakpoint/BreakpointResolverName.cpp b/source/Breakpoint/BreakpointResolverName.cpp
index 27f85653d648..c82dd5ee050b 100644
--- a/source/Breakpoint/BreakpointResolverName.cpp
+++ b/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();