diff options
author | Greg Clayton <gclayton@apple.com> | 2010-09-10 18:31:35 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2010-09-10 18:31:35 +0000 |
commit | 099600312607567b3f24efbfb9de3b825fd5704e (patch) | |
tree | a5f954b2f7af02bbf8c75f9bfaea536361100e1e /lldb/source/API/SBModule.cpp | |
parent | bc1857ba366030eabfea31b996453d316cfc29b3 (diff) | |
download | bcm5719-llvm-099600312607567b3f24efbfb9de3b825fd5704e.tar.gz bcm5719-llvm-099600312607567b3f24efbfb9de3b825fd5704e.zip |
Added some missing API for address resolving within a module, and looking
up a seciton offset address (SBAddress) within a module that returns a
symbol context (SBSymbolContext). Also added a SBSymbolContextList in
preparation for adding find/lookup APIs that can return multiple results.
Added a lookup example code that shows how to do address lookups.
llvm-svn: 113599
Diffstat (limited to 'lldb/source/API/SBModule.cpp')
-rw-r--r-- | lldb/source/API/SBModule.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lldb/source/API/SBModule.cpp b/lldb/source/API/SBModule.cpp index 011197ad7cd..e338101c4e9 100644 --- a/lldb/source/API/SBModule.cpp +++ b/lldb/source/API/SBModule.cpp @@ -8,6 +8,8 @@ //===----------------------------------------------------------------------===// #include "lldb/API/SBModule.h" +#include "lldb/API/SBAddress.h" +#include "lldb/API/SBFileSpec.h" #include "lldb/API/SBFileSpec.h" #include "lldb/Core/Module.h" @@ -105,3 +107,23 @@ SBModule::SetModule (const lldb::ModuleSP& module_sp) m_opaque_sp = module_sp; } + +bool +SBModule::ResolveFileAddress (lldb::addr_t vm_addr, SBAddress& addr) +{ + if (m_opaque_sp) + return m_opaque_sp->ResolveFileAddress (vm_addr, *addr); + + addr->Clear(); + return false; +} + +SBSymbolContext +SBModule::ResolveSymbolContextForAddress (const SBAddress& addr, uint32_t resolve_scope) +{ + SBSymbolContext sb_sc; + if (m_opaque_sp && addr.IsValid()) + m_opaque_sp->ResolveSymbolContextForAddress (*addr, resolve_scope, *sb_sc); + return sb_sc; +} + |