diff options
| author | Greg Clayton <gclayton@apple.com> | 2012-02-05 02:38:54 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2012-02-05 02:38:54 +0000 |
| commit | c96605461cddc640730fcbe93f35059a444a335c (patch) | |
| tree | d82f72f7ea9da116705150fcfa3993442c0c135b /lldb/source/Symbol/DWARFCallFrameInfo.cpp | |
| parent | 6987fdb6208b491fb31d5599eeed6ea2f2c9f30d (diff) | |
| download | bcm5719-llvm-c96605461cddc640730fcbe93f35059a444a335c.tar.gz bcm5719-llvm-c96605461cddc640730fcbe93f35059a444a335c.zip | |
<rdar://problem/10560053>
Fixed "target modules list" (aliased to "image list") to output more information
by default. Modified the "target modules list" to have a few new options:
"--header" or "-h" => show the image header address
"--offset" or "-o" => show the image header address offset from the address in the file (the slide applied to the shared library)
Removed the "--symfile-basename" or "-S" option, and repurposed it to
"--symfile-unique" "-S" which will show the symbol file if it differs from
the executable file.
ObjectFile's can now be loaded from memory for cases where we don't have the
files cached locally in an SDK or net mounted root. ObjectFileMachO can now
read mach files from memory.
Moved the section data reading code into the ObjectFile so that the object
file can get the section data from Process memory if the file is only in
memory.
lldb_private::Module can now load its object file in a target with a rigid
slide (very common operation for most dynamic linkers) by using:
bool
Module::SetLoadAddress (Target &target, lldb::addr_t offset, bool &changed)
lldb::SBModule() now has a new constructor in the public interface:
SBModule::SBModule (lldb::SBProcess &process, lldb::addr_t header_addr);
This will find an appropriate ObjectFile plug-in to load an image from memory
where the object file header is at "header_addr".
llvm-svn: 149804
Diffstat (limited to 'lldb/source/Symbol/DWARFCallFrameInfo.cpp')
| -rw-r--r-- | lldb/source/Symbol/DWARFCallFrameInfo.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lldb/source/Symbol/DWARFCallFrameInfo.cpp b/lldb/source/Symbol/DWARFCallFrameInfo.cpp index 3cf8673d517..b8e8cde7151 100644 --- a/lldb/source/Symbol/DWARFCallFrameInfo.cpp +++ b/lldb/source/Symbol/DWARFCallFrameInfo.cpp @@ -27,9 +27,9 @@ using namespace lldb; using namespace lldb_private; -DWARFCallFrameInfo::DWARFCallFrameInfo(ObjectFile& objfile, SectionSP& section, lldb::RegisterKind reg_kind, bool is_eh_frame) : +DWARFCallFrameInfo::DWARFCallFrameInfo(ObjectFile& objfile, SectionSP& section_sp, lldb::RegisterKind reg_kind, bool is_eh_frame) : m_objfile (objfile), - m_section (section), + m_section_sp (section_sp), m_reg_kind (reg_kind), // The flavor of registers that the CFI data uses (enum RegisterKind) m_flags (), m_cie_map (), @@ -68,7 +68,7 @@ DWARFCallFrameInfo::GetUnwindPlan (Address addr, UnwindPlan& unwind_plan) bool DWARFCallFrameInfo::GetFDEEntryByAddress (Address addr, FDEEntry& fde_entry) { - if (m_section.get() == NULL || m_section->IsEncrypted()) + if (m_section_sp.get() == NULL || m_section_sp->IsEncrypted()) return false; GetFDEIndex(); @@ -280,7 +280,7 @@ DWARFCallFrameInfo::GetCFIData() LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND)); if (log) m_objfile.GetModule()->LogMessage(log.get(), "Reading EH frame info"); - m_section->ReadSectionDataFromObjectFile (&m_objfile, m_cfi_data); + m_objfile.ReadSectionData (m_section_sp.get(), m_cfi_data); m_cfi_data_initialized = true; } } @@ -291,7 +291,7 @@ DWARFCallFrameInfo::GetCFIData() void DWARFCallFrameInfo::GetFDEIndex () { - if (m_section.get() == NULL || m_section->IsEncrypted()) + if (m_section_sp.get() == NULL || m_section_sp->IsEncrypted()) return; if (m_fde_index_initialized) return; @@ -318,7 +318,7 @@ DWARFCallFrameInfo::GetFDEIndex () const CIE *cie = GetCIE (cie_offset); if (cie) { - const lldb::addr_t pc_rel_addr = m_section->GetFileAddress(); + const lldb::addr_t pc_rel_addr = m_section_sp->GetFileAddress(); const lldb::addr_t text_addr = LLDB_INVALID_ADDRESS; const lldb::addr_t data_addr = LLDB_INVALID_ADDRESS; @@ -348,7 +348,7 @@ DWARFCallFrameInfo::FDEToUnwindPlan (dw_offset_t offset, Address startaddr, Unwi { dw_offset_t current_entry = offset; - if (m_section.get() == NULL || m_section->IsEncrypted()) + if (m_section_sp.get() == NULL || m_section_sp->IsEncrypted()) return false; if (m_cfi_data_initialized == false) @@ -377,7 +377,7 @@ DWARFCallFrameInfo::FDEToUnwindPlan (dw_offset_t offset, Address startaddr, Unwi const dw_offset_t end_offset = current_entry + length + 4; - const lldb::addr_t pc_rel_addr = m_section->GetFileAddress(); + const lldb::addr_t pc_rel_addr = m_section_sp->GetFileAddress(); const lldb::addr_t text_addr = LLDB_INVALID_ADDRESS; const lldb::addr_t data_addr = LLDB_INVALID_ADDRESS; lldb::addr_t range_base = m_cfi_data.GetGNUEHPointer(&offset, cie->ptr_encoding, pc_rel_addr, text_addr, data_addr); |

