History log of /llvm-project/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp (Results 251 – 275 of 366)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4
# c178d4c0 25-Aug-2015 Tamas Berghammer <tberghammer@google.com>

Add support for DW_FORM_GNU_[addr,str]_index

These are 2 new value currently in experimental status used when split
debug info is enabled.

Differential revision: http://reviews.llvm.org/D12238

llv

Add support for DW_FORM_GNU_[addr,str]_index

These are 2 new value currently in experimental status used when split
debug info is enabled.

Differential revision: http://reviews.llvm.org/D12238

llvm-svn: 245931

show more ...


# 42ecef3b 24-Aug-2015 Tamas Berghammer <tberghammer@google.com>

Add absolute load address support for the DynamicLoader plugins

The POSIX linker generally reports the load bias for the loaded
libraries but in some case it is useful to handle a library based on
a

Add absolute load address support for the DynamicLoader plugins

The POSIX linker generally reports the load bias for the loaded
libraries but in some case it is useful to handle a library based on
absolute load address. Example usecases:
* Windows linker uses absolute addresses
* Library list came from different source (e.g. /proc/<pid>/maps)

Differential revision: http://reviews.llvm.org/D12233

llvm-svn: 245834

show more ...


Revision tags: llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2
# d00438e8 30-Jul-2015 Tamas Berghammer <tberghammer@google.com>

Fix issues with separate symbolfile handling

Differential revision: http://reviews.llvm.org/D11595

llvm-svn: 243637


# e171da5c 22-Jul-2015 Bruce Mitchener <bruce.mitchener@gmail.com>

Fix typos.

Summary: Fix a bunch of typos.

Reviewers: clayborg

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D11386

llvm-svn: 242856


Revision tags: llvmorg-3.7.0-rc1
# 501a7819 16-Jul-2015 Jaydeep Patil <jaydeep.patil@imgtec.com>

[LLDB][MIPS] Detect MIPS application specific extensions like micromips
SUMMARY:
The patch detects MIPS application specific extensions (ASE) like micromips by reading
ELF header.e_flags

[LLDB][MIPS] Detect MIPS application specific extensions like micromips
SUMMARY:
The patch detects MIPS application specific extensions (ASE) like micromips by reading
ELF header.e_flags and SHT_MIPS_ABIFLAGS section. MIPS triple does not contain ASE
information like micromips, mips16, DSP, MSA etc. These can be read from header.e_flags
or SHT_MIPS_ABIFLAGS section.

Reviewers: clayborg
Subscribers: mohit.bhakkad, sagar, lldb-commits
Differential Revision: http://reviews.llvm.org/D11133

llvm-svn: 242381

show more ...


# c9627aea 13-Jul-2015 Tamas Berghammer <tberghammer@google.com>

Skip oatdata and oatexec symbols in system@framework@boot.oat

On Android the oatdata and the oatexec symbols in
system@framework@boot.oat covers the full .text section what causes
issues with displa

Skip oatdata and oatexec symbols in system@framework@boot.oat

On Android the oatdata and the oatexec symbols in
system@framework@boot.oat covers the full .text section what causes
issues with displaying unusable symbol name to the user and very slow
unwinding speed because the instruction emulation based unwind plans
try to emulate all instructions in these symbols. Don't add these
symbols to the symbol list as they have no use for the debugger and
they are causing a lot of trouble.

Differential revision: http://reviews.llvm.org/D11065

llvm-svn: 242017

show more ...


# ddaf6a72 08-Jul-2015 Greg Clayton <gclayton@apple.com>

Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so.

llv

Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so.

llvm-svn: 241751

show more ...


# 0b6ba7c6 04-Jul-2015 Bruce Mitchener <bruce.mitchener@gmail.com>

Use string::find(char) for single character strings.

Summary: Use string::find(char) for single character strings.

Reviewers: abidh, ki.stfu, clayborg

Subscribers: lldb-commits

Differential Revis

Use string::find(char) for single character strings.

Summary: Use string::find(char) for single character strings.

Reviewers: abidh, ki.stfu, clayborg

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D10943

llvm-svn: 241390

show more ...


# f2561846 30-Jun-2015 Tamas Berghammer <tberghammer@google.com>

Fix [vdso] handling on Android (x86 and aarch64)

* Add in-memory object file handling to the core dynamic loader
* Fix in memory object file handling in ObjectFileELF (previously
only part of the

Fix [vdso] handling on Android (x86 and aarch64)

* Add in-memory object file handling to the core dynamic loader
* Fix in memory object file handling in ObjectFileELF (previously
only part of the file was loaded before parsing)
* Fix load address setting in ObjectFileELF for 32-bit targets
when the load bias is negative
* Change hack in DYLDRendezvous.cpp to be more specific and not to
interfere with object files with fixed load address

Differential revision: http://reviews.llvm.org/D10800

llvm-svn: 241057

show more ...


# 358cf1ea 25-Jun-2015 Greg Clayton <gclayton@apple.com>

Resubmitting 240466 after fixing the linux test suite failures.

A few extras were fixed

- Symbol::GetAddress() now returns an Address object, not a reference. There were places where people were ac

Resubmitting 240466 after fixing the linux test suite failures.

A few extras were fixed

- Symbol::GetAddress() now returns an Address object, not a reference. There were places where people were accessing the address of a symbol when the symbol's value wasn't an address symbol. On MacOSX, undefined symbols have a value zero and some places where using the symbol's address and getting an absolute address of zero (since an Address object with no section and an m_offset whose value isn't LLDB_INVALID_ADDRESS is considered an absolute address). So fixing this required some changes to make sure people were getting what they expected.
- Since some places want to access the address as a reference, I added a few new functions to symbol:
Address &Symbol::GetAddressRef();
const Address &Symbol::GetAddressRef() const;

Linux test suite passes just fine now.

<rdar://problem/21494354>

llvm-svn: 240702

show more ...


Revision tags: llvmorg-3.6.2
# 2480fe06 24-Jun-2015 Tamas Berghammer <tberghammer@google.com>

Fix location of symbol size calculation in ObjectFileELF

Bug introduced by r240533

llvm-svn: 240537


# 44ff9cce 24-Jun-2015 Tamas Berghammer <tberghammer@google.com>

Improve instruction emulation based stack unwinding on ARM

* Add and fix the emulation of several instruction.
* Disable frame pointer usage on Android.
* Specify return address register for the unw

Improve instruction emulation based stack unwinding on ARM

* Add and fix the emulation of several instruction.
* Disable frame pointer usage on Android.
* Specify return address register for the unwind plan instead of explict
tracking the value of RA.
* Replace prologue detection heuristics (unreliable in several cases)
with a logic to follow the branch instructions and restore the CFI
value based on them. The target address for a branch should have the
same CFI as the source address (if they are in the same function).
* Handle symbols in ELF files where the symbol size is not specified
with calcualting their size based on the next symbol (already done
in MachO files).
* Fix architecture in FuncUnwinders with filling up the inforamtion
missing from the object file with the architecture of the target.
* Add code to read register wehn the value is set to "IsSame" as it
meanse the value of a register in the parent frame is the same as the
value in the current frame.

Differential revision: http://reviews.llvm.org/D10447

llvm-svn: 240533

show more ...


Revision tags: llvmorg-3.6.2-rc1
# f6a1312f 05-Jun-2015 Ed Maste <emaste@freebsd.org>

Improve OSType initialization in elf object file's arch_spec

Setting the OSType in the ArchSpec triple is needed to correctly setup
up the register context plugin. ArchSpec::SetArchitecture, for Mac

Improve OSType initialization in elf object file's arch_spec

Setting the OSType in the ArchSpec triple is needed to correctly setup
up the register context plugin. ArchSpec::SetArchitecture, for Mach-O
only, sets the OSType. For ELF it was left to the ObjectFileELF to fill
in the missing OSType.

This change moves the ObjectFileELF logic into ArchSpec.

A new optional 'os' parameter has been added to SetArchitecture.
For ELF, this value is the from the ELF header.e_ident[EI_OSABI].
The default value is 0 or ELFOSABI_NONE.

The real work of determining the OSType was done by the ObjectFileELF
helper function GetOsFromOSABI. This logic has been moved
SetArchitecture.

GetOsFromOSABI has been commented as being deprectated. It is left in
to support asserts.

For ELF the vendor value returned from SetArchitecture should be
UnknownVendor. An unneeded resetting in ObjectFileELF has been removed
and replaced with an assert.

This fixes a problem reading a core file on FreeBSD/ARM because the spec
triple was arm-unknown-unknown.

Patch by Tom Rix.

Differential Revision: http://reviews.llvm.org/D9292

llvm-svn: 239148

show more ...


# 5f2d0c3c 28-May-2015 Aidan Dodds <aidan@codeplay.com>

Fix THUMB function detection when function name is not prefixed.

Differential Revision: http://reviews.llvm.org/D10062

llvm-svn: 238433


Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1
# 85fadd9f 08-May-2015 Tamas Berghammer <tberghammer@google.com>

Fix parsing of the plt section for android-arm

The ELF data contains two different errors in some ELF files on android.
* The link field of the symbol table don't point to the plt section or
to th

Fix parsing of the plt section for android-arm

The ELF data contains two different errors in some ELF files on android.
* The link field of the symbol table don't point to the plt section or
to the dynsym section even when it is present in the ELF files.
* The size of the plt entries aren't specified in the section header of
the plt section.

This CL adds some workarounds for these two issue with finding the
sections by name if the link field is empty and by using a heuristic to
calculate the size and offset of the plt entries.

Differential revision: http://reviews.llvm.org/D9560

llvm-svn: 236818

show more ...


# e8659b5d 23-Apr-2015 Mohit K. Bhakkad <mohit.bhakkad@gmail.com>

[LLDB][MIPS] Add MIPS32 and MIPS64 core revisions
Patch by Jaydeep Patil

Added MIPS32 and MIPS64 core revisions. This would be followed by register context and emulate-instruction for MIPS32.

DYLDR

[LLDB][MIPS] Add MIPS32 and MIPS64 core revisions
Patch by Jaydeep Patil

Added MIPS32 and MIPS64 core revisions. This would be followed by register context and emulate-instruction for MIPS32.

DYLDRendezvous.cpp:
On Linux link map struct does not contain extra load offset field.

Reviewers: clayborg
Subscribers: bhushan, mohit.bhakkad, sagar, lldb-commits.
Differential Revision: http://reviews.llvm.org/D9190

llvm-svn: 235574

show more ...


# 985c9f0c 18-Apr-2015 Oleksiy Vyalov <ovyalov@google.com>

Remove usages of host architecture within ELF object file for unknown parts of ArchSpec.

http://reviews.llvm.org/D9078

llvm-svn: 235255


# b52bbd17 17-Apr-2015 Tamas Berghammer <tberghammer@google.com>

Fix mapping symbol handling on arm 32/64

The debug info section contains some $d mapping symbol what is
overlapping with code sections in other sections of the object file
causing problem in the add

Fix mapping symbol handling on arm 32/64

The debug info section contains some $d mapping symbol what is
overlapping with code sections in other sections of the object file
causing problem in the address class detection. This CL ignores these
symboles from the address class map as the debug info sections don't use
this map.

Differential revision: http://reviews.llvm.org/D9050

llvm-svn: 235171

show more ...


# 1b222b14 16-Apr-2015 Tamas Berghammer <tberghammer@google.com>

Fix thumb symbol value fixup in ObjectFileELF

llvm-svn: 235098


# 83544cf6 07-Apr-2015 Tamas Berghammer <tberghammer@google.com>

Ignore mapping symbols on aarch64

ELF symbol tables on aarch64 may contains some mapping symbols. They
provide information about the underlying data but interfere with symbol
look-up of lldb. They a

Ignore mapping symbols on aarch64

ELF symbol tables on aarch64 may contains some mapping symbols. They
provide information about the underlying data but interfere with symbol
look-up of lldb. They are already ignored on arm32. With this CL they
will be ignored on aarch64 also.

Differential revision: http://reviews.llvm.org/D8776

llvm-svn: 234307

show more ...


# db037d9c 18-Mar-2015 Tamas Berghammer <tberghammer@google.com>

Parse .note.android.ident header from elf files

In android a .note.android.ident section header is added to the elf
files to provide information for the debuggers that it is an android
specific modu

Parse .note.android.ident header from elf files

In android a .note.android.ident section header is added to the elf
files to provide information for the debuggers that it is an android
specific module. This CL add logic to parse it out from the elf files
and set the module specification based on it.

Differential revision: http://reviews.llvm.org/D8377

llvm-svn: 232625

show more ...


Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1
# 3df471c3 17-Mar-2015 Mohit K. Bhakkad <mohit.bhakkad@gmail.com>

[MIPS] - Register Context for MIPS64

Patch by Jaydeep Patil

Summery:
1. Add MIPS variants by parsing e_flags of the ELF
2. Create RegisterInfoInterface and RegisterContext for MIPS64 and MIPS64EL

[MIPS] - Register Context for MIPS64

Patch by Jaydeep Patil

Summery:
1. Add MIPS variants by parsing e_flags of the ELF
2. Create RegisterInfoInterface and RegisterContext for MIPS64 and MIPS64EL

Reviewers: clayborg

Subscribers: tberghammer, bhushan, mohit.bhakkad, sagar

Differential Revision: http://reviews.llvm.org/D8166

llvm-svn: 232467

show more ...


# 63acdfde 10-Mar-2015 Oleksiy Vyalov <ovyalov@google.com>

Add Utility/ModuleCache class and integrate it with PlatformGDBRemoteServer - in order to allow modules caching from remote targets.

http://reviews.llvm.org/D8037

llvm-svn: 231734


# 783cbdcd 04-Mar-2015 Pavel Labath <labath@google.com>

Use the unified section list when generating a symbol table

Summary:
Symbol table generation code was failing to take into account the debug symbols because
the object file was looking only into its

Use the unified section list when generating a symbol table

Summary:
Symbol table generation code was failing to take into account the debug symbols because
the object file was looking only into its own section list when doing the generation, even though
the debug symbols from another object file were correctly detected and loaded by the
SymbolVendor. This changes the code to use the unified section list, which fixes this problem.

Test Plan:
I do not intend do submit this yet since it causes (or more like, exposes) the issue
in D7884, but I wanted to put this out here, so that anyone who wants to take a look at it can do
so. (And I also wanted to know if this is the right approach to the problem :).

Reviewers: clayborg, zturner

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D7913

llvm-svn: 231229

show more ...


# c6ae7eaa 04-Mar-2015 Pavel Labath <labath@google.com>

Correctly resolve symbol names containing linker annotations

Summary:
Symbols in ELF files can be versioned, but LLDB currently does not understand these. This problem
becomes apparent once one load

Correctly resolve symbol names containing linker annotations

Summary:
Symbols in ELF files can be versioned, but LLDB currently does not understand these. This problem
becomes apparent once one loads glibc with debug info. Here (in the .symtab section) the versions
are embedded in the name (name@VERSION), which causes issues when evaluating expressions
referencing memcpy for example (current glibc contains memcpy@@GLIBC_2.14 and
memcpy@GLIBC_2.2.5).

This problem was not evident without debug symbols as the .dynsym section
stores the bare names and the actual versions are present in a separate section (.gnu.version_d),
which LLDB ignores. This resulted in two definitions of memcpy in the symbol table.

This patch adds support for storing annotated names to the Symbol class. If
Symbol.m_contains_linker_annotations is true then this symbol is annotated. Unannotated name can
be obtained by calling StripLinkerAnnotations on the corresponding ObjectFile. ObjectFileELF
implements this to strip @VERSION suffixes when requested. Symtab uses this function to add the
bare name as well as the annotated name to the name lookup table.

To preserve the size of the Symbol class, I had to steal one bit from the m_type field.

Test Plan:
This fixes TestExprHelpExamples.py when run with a glibc with debug symbols. Writing
an environment agnostic test case would require building a custom shared library with symbol
versions and testing symbol resolution against that, which is somewhat challenging.

Reviewers: clayborg, jingham

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D8036

llvm-svn: 231228

show more ...


1...<<1112131415