History log of /llvm-project/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp (Results 301 – 325 of 366)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 9e02dacd 06-Feb-2014 Steve Pucci <spucci@google.com>

Factor some methods that were in DynamicLoaderPOSIXDYLD.

Move some code that was in DynamicLoaderPOSIXDLYD into the
base class DynamicLoader. In the case of UpdateLoadedSections(),
the test to see

Factor some methods that were in DynamicLoaderPOSIXDYLD.

Move some code that was in DynamicLoaderPOSIXDLYD into the
base class DynamicLoader. In the case of UpdateLoadedSections(),
the test to see whether a file is loadable (its address is zero)
is not generally applicable so that test is changed to a more
universally applicable check for the SHF_ALLOC flag on the section.

Also make it explicit that the reading of the module_id in
DynamicLoaderPOSIXDYLD::GetThreadLocalData() is using a hardcoded
size (of module_id) of 4, which might not be appropriate on
big-endian 64-bit systems, leaving a FIXME comment in place.

llvm-svn: 200939

show more ...


Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2
# c113ff8c 02-Dec-2013 Ed Maste <emaste@freebsd.org>

elf: Move elf note parsing to ObjectFileELF.cpp

Separate ELF note implementations were introduced for core files and
GNU build-id. Move the more general one from elf-core to ObjectFileELF
and use i

elf: Move elf note parsing to ObjectFileELF.cpp

Separate ELF note implementations were introduced for core files and
GNU build-id. Move the more general one from elf-core to ObjectFileELF
and use it for build-id as well.

Review: http://llvm-reviews.chandlerc.com/D1902
llvm-svn: 196125

show more ...


Revision tags: llvmorg-3.4.0-rc1
# 5480365b 11-Oct-2013 Ed Maste <emaste@freebsd.org>

Simplify indirect rld_map for mips (rework r192408).

Just pass a Target* into ObjectFileELF::GetImageInfoAddress so that
it can do the extra dereference necessary on MIPS, instead of passing
a flag

Simplify indirect rld_map for mips (rework r192408).

Just pass a Target* into ObjectFileELF::GetImageInfoAddress so that
it can do the extra dereference necessary on MIPS, instead of passing
a flag back to the caller.

Review: http://llvm-reviews.chandlerc.com/D1899
llvm-svn: 192469

show more ...


# 04a8bab0 11-Oct-2013 Ed Maste <emaste@freebsd.org>

Support mips shared object debug info

MIPS's .dyanamic section is read-only. Instead of using DT_DEBUG for
the pointer to dyld information it uses a separate tag DT_MIPS_RLD_MAP
which points to sto

Support mips shared object debug info

MIPS's .dyanamic section is read-only. Instead of using DT_DEBUG for
the pointer to dyld information it uses a separate tag DT_MIPS_RLD_MAP
which points to storage in the read-write .rld_map section, which in
turn points to the dyld information.

Review: http://llvm-reviews.chandlerc.com/D1890
llvm-svn: 192408

show more ...


# 35729bb1 24-Sep-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com>

Adds an option to resolve a symbol from an address that can be used
to build out the symbol table as addresses are used, and implements
the mechanism for ELF to add stripped symbols from eh_frame.

U

Adds an option to resolve a symbol from an address that can be used
to build out the symbol table as addresses are used, and implements
the mechanism for ELF to add stripped symbols from eh_frame.

Uses this mechanism to allow disassembly for addresses corresponding
to stripped symbols for ELF, and provide hooks to implement this for
PE COFF.

Also removes eSymbolContextTailCall in favor of an option for
ResolveSymbolContextForAddress for consistency with the documentation
for eSymbolContextEverything. Essentially, this is just an option for
interpreting the so_addr.


llvm-svn: 191307

show more ...


# f7899545 22-Aug-2013 Michael Sartain <mikesart@valvesoftware.com>

Round plt entsize to addralign

llvm-svn: 189066


# 3cf443dd 17-Jul-2013 Michael Sartain <mikesart@valvesoftware.com>

simple plugin now works with Linux fix assert in SetPluginInfo implement Linux ePathTypeLLDBSystemPlugins and ePathTypeLLDBUserPlugins implement Linux Host::Backtrace and Host::GetEnvironment add .gn

simple plugin now works with Linux fix assert in SetPluginInfo implement Linux ePathTypeLLDBSystemPlugins and ePathTypeLLDBUserPlugins implement Linux Host::Backtrace and Host::GetEnvironment add .gnu_debugdata comment

Differential Revision: http://llvm-reviews.chandlerc.com/D1159

llvm-svn: 186475

show more ...


# 4822d926 11-Jul-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com>

Adds methods to ObjectFileELF to access data in ELF segments
in preparation to add support for ELF core files.

Patch by Samuel Jacob!

llvm-svn: 186114


# 3046e668 10-Jul-2013 Greg Clayton <gclayton@apple.com>

Cleanup on the unified section list changes. Main changes are:
- ObjectFile::GetSymtab() and ObjectFile::ClearSymtab() no longer takes any flags
- Module coordinates with the object files and contain

Cleanup on the unified section list changes. Main changes are:
- ObjectFile::GetSymtab() and ObjectFile::ClearSymtab() no longer takes any flags
- Module coordinates with the object files and contain a unified section list so that object file and symbol file can share sections when they need to, yet contain their own sections.

Other cleanups:
- Fixed Symbol::GetByteSize() to not have the symbol table compute the byte sizes on the fly
- Modified the ObjectFileMachO class to compute symbol sizes all at once efficiently
- Modified the Symtab class to store a file address lookup table for more efficient lookups
- Removed Section::Finalize() and SectionList::Finalize() as they did nothing
- Improved performance of the detection of symbol files that have debug maps by excluding stripped files and core files, debug files, object files and stubs
- Added the ability to tell if an ObjectFile has been stripped with ObjectFile::IsStripped() (used this for the above performance improvement)

llvm-svn: 185990

show more ...


Revision tags: llvmorg-3.3.1-rc1
# 9f4517a7 03-Jul-2013 Michael Sartain <mikesart@valvesoftware.com>

Fix ObjectFileELF crc32 code used when no build id is present.

Differential Revision: http://llvm-reviews.chandlerc.com/D1081

llvm-svn: 185494


# a7499c98 01-Jul-2013 Michael Sartain <mikesart@valvesoftware.com>

Split symbol support for ELF and Linux.

llvm-svn: 185366


Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3
# 477d86d8 23-May-2013 Filipe Cabecinhas <me@filcab.net>

Adds PT_TLS and PT_GNU_EH_FRAME names to DumpELFProgramHeaders

llvm-svn: 182619


# c836ae7d 23-May-2013 Michael Sartain <mikesart@valvesoftware.com>

ObjectFileELF::GetModuleSpecifications on Linux should work now.
Which means "platform process list" should work and list the architecture.
We are now parsing the elf build-id if it exists, which sho

ObjectFileELF::GetModuleSpecifications on Linux should work now.
Which means "platform process list" should work and list the architecture.
We are now parsing the elf build-id if it exists, which should allow us to load stripped symbols (looking at that next).

llvm-svn: 182610

show more ...


Revision tags: llvmorg-3.3.0-rc2
# adeab508 17-May-2013 Michael Sartain <mikesart@valvesoftware.com>

Comment out ObjectFileELF::GetModuleSpecifications() function until I can debug where it's causing tests to fail.

llvm-svn: 182069


# 9f0013d8 17-May-2013 Michael Sartain <mikesart@valvesoftware.com>

Implement ObjectFileELF::GetModuleSpecifications(), and add PlatformLinux code to deal with unknown arch properties.

CR: Greg Clayton
llvm-svn: 182065


# 22b40f7b 16-May-2013 Filipe Cabecinhas <me@filcab.net>

Fix ObjectFileELF to not use the file_offset twice.

llvm-svn: 182061


# 57abc5d6 10-May-2013 Greg Clayton <gclayton@apple.com>

<rdar://problem/13854277>
<rdar://problem/13594769>

Main changes in this patch include:
- cleanup plug-in interface and use ConstStrings for plug-in names
- Modfiied the BSD Archive plug-in to be ab

<rdar://problem/13854277>
<rdar://problem/13594769>

Main changes in this patch include:
- cleanup plug-in interface and use ConstStrings for plug-in names
- Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp
- Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging

The plug-in interface changes:

Modified the lldb_private::PluginInterface class that all plug-ins inherit from:

Changed:

virtual const char * GetPluginName() = 0;

To:

virtual ConstString GetPluginName() = 0;

Removed:

virtual const char * GetShortPluginName() = 0;

- Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names.
- Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc.

llvm-svn: 181631

show more ...


Revision tags: llvmorg-3.3.0-rc1
# f4d6de6a 24-Apr-2013 Greg Clayton <gclayton@apple.com>

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

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

show more ...


# 7b0992d9 18-Apr-2013 Greg Clayton <gclayton@apple.com>

After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11.

llvm-svn: 179805


# e01e07b6 18-Apr-2013 Greg Clayton <gclayton@apple.com>

Since we use C++11, we should switch over to using std::unique_ptr when C++11 is being used. To do this, we follow what we have done for shared pointers and we define a STD_UNIQUE_PTR macro that can

Since we use C++11, we should switch over to using std::unique_ptr when C++11 is being used. To do this, we follow what we have done for shared pointers and we define a STD_UNIQUE_PTR macro that can be used and it will "do the right thing". Due to some API differences in std::unique_ptr and due to the fact that we need to be able to compile without C++11, we can't use move semantics so some code needed to change so that it can compile with either C++.

Anyone wanting to use a unique_ptr or auto_ptr should now use the "STD_UNIQUE_PTR(TYPE)" macro.

llvm-svn: 179779

show more ...


# 9594f4c8 13-Apr-2013 Greg Clayton <gclayton@apple.com>

Fixed issues with the way ELF symbols are parsed:
- Do not add symbols with no names
- Make sure that symbols from ELF symbol tables know that the byte size is correct. Previously the symbols would c

Fixed issues with the way ELF symbols are parsed:
- Do not add symbols with no names
- Make sure that symbols from ELF symbol tables know that the byte size is correct. Previously the symbols would calculate their sizes by looking for the next symbol and take symbols that had zero size and make them have invalid sizes.
- Added the ability to dump raw ELF symbols by adding a Dump method to ELFSymbol

Also removed some unused code from lldb_private::Symtab.

llvm-svn: 179466

show more ...


# 9422dd64 04-Mar-2013 Greg Clayton <gclayton@apple.com>

<rdar://problem/13338643>

DWARF with .o files now uses 40-60% less memory!

Big fixes include:
- Change line table internal representation to contain "file addresses". Since each line table is owned

<rdar://problem/13338643>

DWARF with .o files now uses 40-60% less memory!

Big fixes include:
- Change line table internal representation to contain "file addresses". Since each line table is owned by a compile unit that is owned by a module, it makes address translation into lldb_private::Address easy to do when needed.
- Removed linked address members/methods from lldb_private::Section and lldb_private::Address
- lldb_private::LineTable can now relink itself using a FileRangeMap to make it easier to re-link line tables in the future
- Added ObjectFile::ClearSymtab() so that we can get rid of the object file symbol tables after we parse them once since they are not needed and kept memory allocated for no reason
- Moved the m_sections_ap (std::auto_ptr to section list) and m_symtab_ap (std::auto_ptr to the lldb_private::Symtab) out of each of the ObjectFile subclasses and put it into lldb_private::ObjectFile.
- Changed how the debug map is parsed and stored to be able to:
- Lazily parse the debug map for each object file
- not require the address map for a .o file until debug information is linked for a .o file

llvm-svn: 176454

show more ...


# 00049b8b 27-Feb-2013 Matt Kopec <Matt.Kopec@intel.com>

Add GNU indirect function support in expressions for Linux.

llvm-svn: 176206


# 92dd5cfe 12-Feb-2013 Matt Kopec <Matt.Kopec@intel.com>

Fix ELF parsing where undefined symbols were being added to the symbol table with the incorrect symbol type.

llvm-svn: 174984


# 64ff6c70 07-Feb-2013 Greg Clayton <gclayton@apple.com>

Be sure to set the data offset to zero if we actually mmap the entire ELF file.

llvm-svn: 174668


1...<<1112131415