summaryrefslogtreecommitdiffstats
path: root/lldb/include/lldb/lldb-private-interfaces.h
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2013-04-24 22:29:28 +0000
committerGreg Clayton <gclayton@apple.com>2013-04-24 22:29:28 +0000
commitf4d6de6a5385e18e0b7746d3037f2029069c6ef3 (patch)
treee9e6c4d2b765b926e5ec4dc75e006059730d8aef /lldb/include/lldb/lldb-private-interfaces.h
parent8d1d25222ec4b1c0d590cd888499d2061eaa67e3 (diff)
downloadbcm5719-llvm-f4d6de6a5385e18e0b7746d3037f2029069c6ef3.tar.gz
bcm5719-llvm-f4d6de6a5385e18e0b7746d3037f2029069c6ef3.zip
Added the ability to extract a ModuleSpecList (a new class) from an ObjectFile. This is designed to be used when you have an object file that contains one or more architectures (MacOSX universal (fat) files) and/or one or more objects (BSD archive (.a files)).
There is a new static ObjectFile function you can call: size_t ObjectFile::GetModuleSpecifications (const FileSpec &file, lldb::offset_t file_offset, ModuleSpecList &specs) This will fill in "specs" which the details of all the module specs (file + arch + UUID (if there is one) + object name (for BSD archive objects eventually) + file offset to the object in question). This helps us when a user specifies a file that contains a single architecture, and also helps us when we are given a debug symbol file (like a dSYM file on MacOSX) that contains one or more architectures and we need to be able to match it up to an existing Module that has no debug info. llvm-svn: 180224
Diffstat (limited to 'lldb/include/lldb/lldb-private-interfaces.h')
-rw-r--r--lldb/include/lldb/lldb-private-interfaces.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/lldb/include/lldb/lldb-private-interfaces.h b/lldb/include/lldb/lldb-private-interfaces.h
index 25b71e6efff..492926e7a45 100644
--- a/lldb/include/lldb/lldb-private-interfaces.h
+++ b/lldb/include/lldb/lldb-private-interfaces.h
@@ -20,6 +20,7 @@ namespace lldb_private
typedef Disassembler* (*DisassemblerCreateInstance) (const ArchSpec &arch, const char *flavor);
typedef DynamicLoader* (*DynamicLoaderCreateInstance) (Process* process, bool force);
typedef ObjectContainer* (*ObjectContainerCreateInstance) (const lldb::ModuleSP &module_sp, lldb::DataBufferSP& data_sp, lldb::offset_t data_offset, const FileSpec *file, lldb::offset_t offset, lldb::offset_t length);
+ typedef size_t (*ObjectFileGetModuleSpecifications) (const FileSpec &file, lldb::DataBufferSP& data_sp, lldb::offset_t data_offset, lldb::offset_t file_offset, lldb::offset_t length, ModuleSpecList &module_specs);
typedef ObjectFile* (*ObjectFileCreateInstance) (const lldb::ModuleSP &module_sp, lldb::DataBufferSP& data_sp, lldb::offset_t data_offset, const FileSpec* file, lldb::offset_t file_offset, lldb::offset_t length);
typedef ObjectFile* (*ObjectFileCreateMemoryInstance) (const lldb::ModuleSP &module_sp, lldb::DataBufferSP& data_sp, const lldb::ProcessSP &process_sp, lldb::addr_t offset);
typedef LogChannel* (*LogChannelCreateInstance) ();
OpenPOWER on IntegriCloud