| #
b52bbd17 |
| 17-Apr-2015 |
Tamas Berghammer <[email protected]> |
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 <[email protected]> |
Fix thumb symbol value fixup in ObjectFileELF
llvm-svn: 235098
|
| #
83544cf6 |
| 07-Apr-2015 |
Tamas Berghammer <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
[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 <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
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 ...
|
|
Revision tags: llvmorg-3.6.0 |
|
| #
736888c8 |
| 23-Feb-2015 |
Greg Clayton <[email protected]> |
Avoid crashing by not mmap'ing files on network mounted file systems.
This is implemented by making a new FileSystem function:
bool FileSystem::IsLocal(const FileSpec &spec)
Then using this in a n
Avoid crashing by not mmap'ing files on network mounted file systems.
This is implemented by making a new FileSystem function:
bool FileSystem::IsLocal(const FileSpec &spec)
Then using this in a new function:
DataBufferSP FileSpec::MemoryMapFileContentsIfLocal(off_t file_offset, size_t file_size) const;
This function only mmaps data if the file is a local file since that means we can reliably page in data. We were experiencing crashes where people would use debug info files on network mounted file systems and that mount would go away and cause the next access to a page that wasn't paged in to crash LLDB.
We now avoid this by just copying the data into a heap buffer and keeping a permanent copy to avoid the crash. Updated all previous users of FileSpec::MemoryMapFileContentsIfLocal() in ObjectFile subclasses over to use the new FileSpec::MemoryMapFileContentsIfLocal() function.
<rdar://problem/19470249>
llvm-svn: 230283
show more ...
|
| #
3a8ab6ee |
| 23-Feb-2015 |
Ed Maste <[email protected]> |
Exit early from DumpELFProgramHeaders if parse fails
This matches the way DumpELFSectionHeaders is implemented and is recommended by the LLVM coding conventions.
llvm-svn: 230228
|
|
Revision tags: llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
| #
6256a0ea |
| 31-Oct-2014 |
Justin Hibbits <[email protected]> |
First cut of PowerPC(64) support in LLDB.
Summary: This adds preliminary support for PowerPC/PowerPC64, for FreeBSD. There are some issues still:
* Breakpoints don't work well on powerpc64. * Sh
First cut of PowerPC(64) support in LLDB.
Summary: This adds preliminary support for PowerPC/PowerPC64, for FreeBSD. There are some issues still:
* Breakpoints don't work well on powerpc64. * Shared libraries don't yet get loaded for a 32-bit process on powerpc64 host. * Backtraces don't work. This is due to PowerPC ABI using a backchain pointer in memory, instead of a dedicated frame pointer register for the backchain. * Breakpoints on functions without debug info may not work correctly for 32-bit powerpc.
Reviewers: emaste, tfiala, jingham, clayborg
Reviewed By: clayborg
Subscribers: emaste, lldb-commits
Differential Revision: http://reviews.llvm.org/D5988
llvm-svn: 220944
show more ...
|
| #
6e7b0a08 |
| 15-Oct-2014 |
Matthew Gardiner <[email protected]> |
Improve the handling of kalimba ELF file section type recognition.
Recognise the SHT_NOBITS property in kalimba ELF, and determine this to be of type zerofilled. Subsequently recognise this type to
Improve the handling of kalimba ELF file section type recognition.
Recognise the SHT_NOBITS property in kalimba ELF, and determine this to be of type zerofilled. Subsequently recognise this type to represent bytes on the target's DATA address space, and therefore be sized accordingly.
llvm-svn: 219782
show more ...
|
| #
f03e6d84 |
| 29-Sep-2014 |
Matthew Gardiner <[email protected]> |
Very minimal support 24-bit kalimbas. Vanilla "memory read" for data sections works, as do breakpoints, run and pause, display zeroth frame.
See http://reviews.llvm.org/D5503
for a fuller descripti
Very minimal support 24-bit kalimbas. Vanilla "memory read" for data sections works, as do breakpoints, run and pause, display zeroth frame.
See http://reviews.llvm.org/D5503
for a fuller description of the changes in this commit.
llvm-svn: 218596
show more ...
|
| #
fbd703ad |
| 15-Sep-2014 |
Todd Fiala <[email protected]> |
ELF: store the thumbness of a function in symbol flags.
This allows us to fixup the address of the symbol as soon as we parse it so that lldb is not confused thinking there are two different symbols
ELF: store the thumbness of a function in symbol flags.
This allows us to fixup the address of the symbol as soon as we parse it so that lldb is not confused thinking there are two different symbols in the binary (one with the thumb bit, one without). Also, differentiating between THUMB and ARM symbols allows the debugger to place the right type of breakpoint.
Change by Stephane Sezer.
llvm-svn: 217841
show more ...
|
| #
1a08866a |
| 15-Sep-2014 |
Todd Fiala <[email protected]> |
Handle ARM ELF symbols properly: skip $t* and $a* symbols in ObjectFileELF.
ELF objects contain marker symbols to differentiate between ARM and THUMB functions. Instead of storing them internally an
Handle ARM ELF symbols properly: skip $t* and $a* symbols in ObjectFileELF.
ELF objects contain marker symbols to differentiate between ARM and THUMB functions. Instead of storing them internally and having garbage show up when symbols are searched for by the user, we can just skip them and not store them at all, as we never actually need them.
Change by Stephane Sezer.
Tested: Ubuntu 14.04 x86_64 MacOSX 10.9.4 x86_64
llvm-svn: 217782
show more ...
|
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4 |
|
| #
5f67579f |
| 27-Aug-2014 |
Matthew Gardiner <[email protected]> |
Add support for kalimba architecture variants 3, 4 and 5. Add entries to core_definitions and elf_arch_entries for those variants. Select the subtype for the variant by parsing the e_flags field of t
Add support for kalimba architecture variants 3, 4 and 5. Add entries to core_definitions and elf_arch_entries for those variants. Select the subtype for the variant by parsing the e_flags field of the elf header.
llvm-svn: 216541
show more ...
|
|
Revision tags: llvmorg-3.5.0-rc3 |
|
| #
13b18261 |
| 20-Aug-2014 |
Zachary Turner <[email protected]> |
Move Host::GetArchitecture to HostInfo::GetArchitecture.
As a side effect, this patch also eliminates all of the preprocessor conditionals previously used to implement GetArchitecture().
llvm-svn:
Move Host::GetArchitecture to HostInfo::GetArchitecture.
As a side effect, this patch also eliminates all of the preprocessor conditionals previously used to implement GetArchitecture().
llvm-svn: 216074
show more ...
|
| #
97a14e60 |
| 19-Aug-2014 |
Zachary Turner <[email protected]> |
Move some Host logic into HostInfo class.
This patch creates a HostInfo class, a static class used to answer basic queries about the host platform. As part of this change, some functionality is mov
Move some Host logic into HostInfo class.
This patch creates a HostInfo class, a static class used to answer basic queries about the host platform. As part of this change, some functionality is moved from Host to HostInfo, and relevant fixups are performed in the rest of the codebase.
This is part of a larger effort to isolate more code in the Host layer into platform-specific groups, to make it easier to make platform specific changes for a particular Host without breaking other hosts.
Reviewed by: Greg Clayton
Differential Revision: http://reviews.llvm.org/D4963
llvm-svn: 215992
show more ...
|
|
Revision tags: llvmorg-3.5.0-rc2 |
|
| #
71f5b50f |
| 22-Jul-2014 |
Deepak Panickal <[email protected]> |
Fix an issue where an entry point of 0x00 would cause LLDB to think that the ELF is not executable without checking for ET_EXEC
llvm-svn: 213644
|
|
Revision tags: llvmorg-3.5.0-rc1 |
|
| #
cfee9632 |
| 16-Jul-2014 |
Todd Fiala <[email protected]> |
Add kalimba as a platform.
This change comprises of additions and some minor changes in order that "kalimba" is listed as a supported platform and that debugging any kalimbas results in PlatformKali
Add kalimba as a platform.
This change comprises of additions and some minor changes in order that "kalimba" is listed as a supported platform and that debugging any kalimbas results in PlatformKalimba being associated with the target.
The changes are as follows:
* The PlatformKalimba implementation itself * A tweak to ArchSpec * .note parsing for Kalimba in ObjectFileELF.cpp * Plugin registration * Makefile additions
Change by Matthew Gardiner
Minor tweak for cmake and Xcode by Todd Fiala
Tested: Ubuntu 14.04 x86_64, clang 3.5-built lldb, all tests pass. MacOSX 10.9.4, Xcode 6.0 Beta 1-built lldb, all tests pass.
llvm-svn: 213158
show more ...
|
| #
44362e06 |
| 12-Jul-2014 |
Greg Clayton <[email protected]> |
Allow generic ARM cores to match any more specific ARM architecture.
<rdar://problem/15932248>
llvm-svn: 212863
|
| #
09512ec2 |
| 11-Jul-2014 |
Todd Fiala <[email protected]> |
Modify ObjectFileELF::GetArchitecture() to avoid calling ParseSectionHeaders() when we have headers.
Change by Matthew Gardiner.
llvm-svn: 212825
|
| #
6477ea87 |
| 11-Jul-2014 |
Todd Fiala <[email protected]> |
Prevent ObjectFileELF::GetSectionHeaderInfo() from reparsing section headers.
If we have any section headers in the collection, we already parsed them. Therefore, don't reparse the section headers w
Prevent ObjectFileELF::GetSectionHeaderInfo() from reparsing section headers.
If we have any section headers in the collection, we already parsed them. Therefore, don't reparse the section headers when the section_headers collection is not empty.
See this thread for more details: http://lists.cs.uiuc.edu/pipermail/lldb-commits/Week-of-Mon-20140707/011721.html
Change by Matthew Gardiner
llvm-svn: 212822
show more ...
|
| #
d93c4a33 |
| 01-Jul-2014 |
Bruce Mitchener <[email protected]> |
Fix typos.
llvm-svn: 212132
|
| #
b91de786 |
| 27-Jun-2014 |
Todd Fiala <[email protected]> |
Fix ObjectFileELF to determine architectures independent of host.
Previously ObjectFileELF was simplifying and assuming the object file it was looking at was the same as the host architecture/triple
Fix ObjectFileELF to determine architectures independent of host.
Previously ObjectFileELF was simplifying and assuming the object file it was looking at was the same as the host architecture/triple. This would break attempts to run, say, lldb on MacOSX against lldb-gdbserver on Linux since the MacOSX lldb would say that the linux elf file was really an Apple MacOSX architecture. Chaos would ensue.
This change allows the elf file to parse ELF notes for Linux, FreeBSD and NetBSD, and determine the OS appropriately from them. It also initializes the OS type from the ELF header OSABI if it is set (which it is for FreeBSD but not for Linux).
Added a test with freebsd and linux images that verify that '(lldb) image list -t -A' prints out the expected architecture for each.
llvm-svn: 211907
show more ...
|