summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/DynamicLoader/Linux-DYLD
Commit message (Collapse)AuthorAgeFilesLines
* Fix incomplete commit of ↵Johnny Chen2012-01-057-0/+0
| | | | | | | | | | | | | http://llvm.org/viewvc/llvm-project?rev=147609&view=rev: This patch combines common code from Linux and FreeBSD into a new POSIX platform. It also contains fixes for 64bit FreeBSD. The patch is based on changes by Mark Peek <mp@FreeBSD.org> and "K. Macy" <kmacy@freebsd.org> in their github repo located at https://github.com/fbsd/lldb. llvm-svn: 147613
* This patch combines common code from Linux and FreeBSD intoJohnny Chen2012-01-057-1439/+0
| | | | | | | | | | a new POSIX platform. It also contains fixes for 64bit FreeBSD. The patch is based on changes by Mark Peek <mp@FreeBSD.org> and "K. Macy" <kmacy@freebsd.org> in their github repo located at https://github.com/fbsd/lldb. llvm-svn: 147609
* Patch from dawn@burble.org to build on linux!Johnny Chen2011-10-101-5/+5
| | | | llvm-svn: 141593
* API fix and missing headers.Johnny Chen2011-05-191-1/+1
| | | | | | | | | | | | | | Host.cpp was missing Error.h and the implementation of LaunchProcess. Once againg I have added a "fake" implementation waiting for a real one. Fixed the call GetAddressRange to reflect the new interface in DynamicLoaderLinuxDYLD.cpp. Added string.h to ARM_DWARF_Registers.cpp that is needed for ::memset. Signed-off-by: Johnny Chen <johnny.chen@apple.com> llvm-svn: 131695
* linux: add missing arguments to FindFirstModuleForFileSpecStephen Wilson2011-04-081-2/+3
| | | | | | | Specifying the new arguments as NULL is appropriate for now as this is backwards-compatible with the old invocation. llvm-svn: 129118
* linux: create thread plans for stepping thru PLT entriesStephen Wilson2011-03-301-6/+47
| | | | | | | | Using the new synthetic symbols generated by ObjectFileELF, have the Linux dynamic loader plugin generate a thread plan that will take us thru a PLT entry to the corresponding target function. llvm-svn: 128552
* Fix ObjectFileElf::GetEntryPointAddress()Stephen Wilson2011-03-081-1/+1
| | | | | | | | | | | | | | ELF object files do not implicitly have a symbol named "start" as an entry point. For example, on Linux it is often named "_start", but can be trivially set to any symbol by passing an --entry argument to the linker. Use the ELF header to determine the entry point and resolve the associated section based on that address. Also, update the linux dynamic loader to call GetEntryPointAddress instead of GetEntryPoint. llvm-svn: 127218
* Make declaration of DynamicLoaderLinuxDYLD::CreateInstance match its definition.Stephen Wilson2011-02-161-1/+1
| | | | llvm-svn: 125656
* The DynamicLoader plug-in instance now lives up in lldb_private::Process whereGreg Clayton2011-02-161-2/+12
| | | | | | | | | | | | | | | | | it should live and the lldb_private::Process takes care of managing the auto pointer to the dynamic loader instance. Also, now that the ArchSpec contains the target triple, we are able to correctly set the Target architecture in DidLaunch/DidAttach in the subclasses, and then the lldb_private::Process will find the dynamic loader plug-in by letting the dynamic loader plug-ins inspect the arch/triple in the target. So now the ProcessGDBRemote plug-in is another step closer to be purely process/platform agnostic. I updated the ProcessMacOSX and the ProcessLinux plug-ins accordingly. llvm-svn: 125650
* Load dependent modules in the Linux dynamic loader.Stephen Wilson2011-01-191-0/+7
| | | | | | | This fixes a bug where the dynamic loader rendezvous was not updating its internal state when first initialized. llvm-svn: 123794
* Initial support for a DynamicLoader plugin on Linux.Stephen Wilson2011-01-167-0/+1380
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
OpenPOWER on IntegriCloud