llvm-project/lldb
Stephen Wilson 2103e25e19 Initial support for a DynamicLoader plugin on Linux.
This patch is enough to have shared objects recognized by LLDB.  We can handle
position independent executables.  We can handle dynamically loaded modules
brought in via dlopen.

The DYLDRendezvous class provides an interface to a structure present in the
address space of ELF-based processes.  This structure provides the address of a
function which is called by the linker each time a shared object is loaded and
unloaded (thus a breakpoint at that address will let LLDB intercept such
events), a list of entries describing the currently loaded shared objects, plus
a few other things.

On Linux, processes are brought up with an auxiliary vector on the stack.  One
element in this vector contains the (possibly dynamic) entry address of the
process.  One does not need to walk the stack to find this information as it is
also available under /proc/<pid>/auxv.  The new AuxVector class provides a
convenient read-only view of this auxiliary vector information.  We use the
dynamic entry address and the address as specified in the object file to compute
the actual load address of the inferior image.  This strategy works for both
normal executables and PIE's.

llvm-svn: 123592
2011-01-16 19:45:39 +00:00
..
docs Spelling changes applied from lldb_spelling.diffs from Bruce Mitchener. 2011-01-08 20:28:42 +00:00
examples Spelling changes applied from lldb_spelling.diffs from Bruce Mitchener. 2011-01-08 20:28:42 +00:00
include Added complete complex support for displaying and parsing complex types. 2011-01-15 02:52:14 +00:00
lib Initial support for a DynamicLoader plugin on Linux. 2011-01-16 19:45:39 +00:00
lldb.xcodeproj lldb-41 and debugserver-126 are set in the Xcode projects. 2011-01-15 03:06:23 +00:00
resources lldb-41 and debugserver-126 are set in the Xcode projects. 2011-01-15 03:06:23 +00:00
scripts Fixed an error in the type map for "char **" that was a bad memory smasher. 2011-01-14 04:54:56 +00:00
source Initial support for a DynamicLoader plugin on Linux. 2011-01-16 19:45:39 +00:00
test Converted to use Makefile.rules. 2011-01-14 21:55:29 +00:00
tools lldb-41 and debugserver-126 are set in the Xcode projects. 2011-01-15 03:06:23 +00:00
utils The recent change in argument parsing is messing up the emacs lldb mode's capability to properly 2010-12-20 22:58:58 +00:00
www Apply patch from Bruce Mitchener to fix spelling errors. 2011-01-07 17:16:03 +00:00
INSTALL.txt You'll need to be running Mac OS X to get lldb to build right now. 2010-06-09 07:29:26 +00:00
LICENSE.TXT test commit 2010-06-09 03:55:24 +00:00
Makefile Ignore unknown pragmas. 2011-01-06 22:10:24 +00:00