History log of /external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4349bcb8ec51f3fd447b511b2ce8292a92d3c771 01-Aug-2013 Michael Sartain <mikesart@valvesoftware.com> Fix thread name updating in Linux. "thread list" should report correct names always now.
Created new LinuxThread class inherited from POSIXThread and removed linux / freebsd ifdefs
Removed several un-needed set thread name calls

CR (and multiple suggestions): mkopec



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@187545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
f6f52692f0f8f79860e573ef18a9ed93ef5e2668 17-Jul-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Re-introduces ELF core file support for Linux x86-64
Usage: 'lldb a.out -c core'.
TODO: FreeBSD support.
TODO: Support for AVX registers.
TODO: Refactor so that RegisterContextCore* don't inherit from classes that use ProcessMonitor
to fix the build on OS/X.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@186516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
750ed92ac45e252f1c8b9c2dde31c497f277b2e8 13-Jul-2013 Greg Clayton <gclayton@apple.com> Revert the ELF core file support until a few things can be worked out:

RegisterContextCoreLinux_x86_64 inherits from RegisterContextLinux_x86_64 which inherits from RegisterContext_x86_64 which uses has:

ProcessMonitor &GetMonitor();

This register context used by the core file can't use this since the process plug-in will be ProcessElfCore and the implementation of GetMonitor() does:

ProcessMonitor &
RegisterContext_x86_64::GetMonitor()
{
ProcessSP base = CalculateProcess();
ProcessPOSIX *process = static_cast<ProcessPOSIX*>(base.get());
return process->GetMonitor();
}

ProcessELFCore doesn't, nor should it inherit from ProcessPOSIX and any call to GetMonitor() will fail for ELF core files.

Suggested cleanups:
- Make a register context class that is a base class that doesn't have any reading smarts, then make one that uses ProcessPOSIX and the has the GetMonitor() call, and one that gets its data straight from the core file.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@186223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
26345cbada66df8e698111cdf8d1689ccefe8331 12-Jul-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Introduces core file support for Linux x86-64 using 'lldb a.out -c core'.
TODO: Support for RegisterContext_x86_64::ReadFPR.

Patch by Samuel Jacob!


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@186207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
3bd2ebd670677dae45010bf53084ff85da7c6a5e 29-May-2013 Andrew Kaylor <andrew.kaylor@intel.com> Adding support for stopping all threads of multithreaded inferiors on Linux. Also adding multithreaded test cases.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
0e191607adcb0ea8ebd06c278be648a7f5c0097f 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 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.






git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
f1fda3748c39c92d2e79aeba0715baffabd3286b 08-Jan-2013 Matt Kopec <Matt.Kopec@intel.com> Add initial support to trace spawned threads in a process on Linux.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@171864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
5f35a4be95aed0e5b2cb36f7d785bcbfc67284ae 29-Nov-2012 Daniel Malea <daniel.malea@intel.com> Resolve printf formatting warnings on Linux:
- use macros from inttypes.h for format strings instead of OS-specific types

Patch from Matt Kopec!



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@168945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
5e91e379b3be10738ab5aeae87b47001de16cd7c 12-Oct-2012 Greg Clayton <gclayton@apple.com> Patch from Daniel Malea that cleans up the process parameters for Process/Thread classes for POSIX and Linux.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
c8dd570dddf0b73b74db5c1ecb8f18f023f864e7 12-Apr-2012 Greg Clayton <gclayton@apple.com> Remove the GetSequenceMutex timeout that isn't being used in the GDB remote plug-in.

Also fixed the ProcessLinux, ProcessPOSIX and ProcessFreeBSD to have the correct UpdateThreadList() prototype.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
e5eaa30f62c697d649966c86acd4e3c52b39b355 21-Feb-2012 Greg Clayton <gclayton@apple.com> Linux fix patch from Dmitry Vyukov.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
7e9964783acae183c23a7ea470cedd64472eb233 05-Jan-2012 Johnny Chen <johnny.chen@apple.com> 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.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
48a202dd3ac1fb4ee6709074448dc4d221fa020c 29-Nov-2011 Greg Clayton <gclayton@apple.com> Patch from Dawn that fixes up linux debugging and a first passs at an
implementation of the linux platform.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
ce65d2f8332713f396b76e414288b9543952584c 05-Nov-2011 Greg Clayton <gclayton@apple.com> Patch from Dragos Tatulea which was a modified version of a patch from
Joel Dillon that fixed 64 debugging for Linux.

I also added a patch to fix up the ProcessLinux::DoLaunch() to be up to date.
I wasn't able to verify it compiles, but it should b really close.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
3bf3a9df7a920591092ef13c735cb65854a29a35 18-Oct-2011 Johnny Chen <johnny.chen@apple.com> This patch fixes debugging of single threaded apps on Linux.
It also adds some asserts and additional logging support.

from dawn@burble.org


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
ac51e9f762ded2a1b390945df592e0718cc75862 11-Oct-2011 Johnny Chen <johnny.chen@apple.com> Patch by Dawn to add the logging capabilities to ProcessLinux.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
b8f74aa72802d82466d3beadf2bd58616d2d26a6 11-Oct-2011 Johnny Chen <johnny.chen@apple.com> Patch from dawn@burble.org to build on linux!


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
4755698622b0eeceef07fb6cdad6c95db3a69705 22-Jul-2011 Peter Collingbourne <peter@pcc.me.uk> Update ProcessLinux::CanDebug prototype

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
9bab8d4a18312d743c62083393fe5c39458c300b 14-Jun-2011 Johnny Chen <johnny.chen@apple.com> Primitive attach support for linux

This patch is a starting point for the attach functionality.

Signed-off-by: Johnny Chen <johnny.chen@apple.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
ad11546f92eb28fe7dae203c5c1707fcc86bf285 03-Jun-2011 Peter Collingbourne <peter@pcc.me.uk> Implement ProcessLinux::Do{Allocate,Deallocate}Memory using inferior mmap/munmap calls

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
67d9f7e394d4240d6af0c97d9eb116b0d87aaf07 30-Mar-2011 Stephen Wilson <wilsons@start.ca> linux: initial support for 'real' signal handling

This patch upgrades the Linux process plugin to handle a larger range of signal
events. For example, we can detect when the inferior has "crashed" and why,
interrupt a running process, deliver an arbitrary signal, and so on.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
d1fbbb4cc0f3d4c99ba0614ea99c2df533ee9a0f 23-Mar-2011 Stephen Wilson <wilsons@start.ca> linux: simple support for process input and output



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
a1f0b72a3ea94b48ea803de8ff2d9a56053e8a39 24-Feb-2011 Stephen Wilson <wilsons@start.ca> linux: Use ArchSpec::GetCore and the ArchSpec::Core enums.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
75c703dd8b492bad25a987b96853626641ae7246 16-Feb-2011 Greg Clayton <gclayton@apple.com> The DynamicLoader plug-in instance now lives up in lldb_private::Process where
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
de915beb5febe597505ba33fdc2c39eea2abdbd4 23-Jan-2011 Greg Clayton <gclayton@apple.com> Added a new variant of SBTarget::Launch() that deprectates the old one that
takes separate file handles for stdin, stdout, and stder and also allows for
the working directory to be specified.

Added support to "process launch" to a new option: --working-dir=PATH. We
can now set the working directory. If this is not set, it defaults to that
of the process that has LLDB loaded. Added the working directory to the
host LaunchInNewTerminal function to allows the current working directory
to be set in processes that are spawned in their own terminal. Also hooked this
up to the lldb_private::Process and all mac plug-ins. The linux plug-in had its
API changed, but nothing is making use of it yet. Modfied "debugserver" and
"darwin-debug" to also handle the current working directory options and modified
the code in LLDB that spawns these tools to pass the info along.

Fixed ProcessGDBRemote to properly pass along all file handles for stdin, stdout
and stderr.

After clearing the default values for the stdin/out/err file handles for
process to be NULL, we had a crasher in UserSettingsController::UpdateStringVariable
which is now fixed. Also fixed the setting of boolean values to be able to
be set as "true", "yes", "on", "1" for true (case insensitive) and "false", "no",
"off", or "0" for false.

Fixed debugserver to properly handle files for STDIN, STDOUT and STDERR that are not
already opened. Previous to this fix debugserver would only correctly open and dupe
file handles for the slave side of a pseudo terminal. It now correctly handles
getting STDIN for the inferior from a file, and spitting STDOUT and STDERR out to
files. Also made sure the file handles were correctly opened with the NOCTTY flag
for terminals.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
83047fc9e4d572fc487446d412ad2d1556e8be12 19-Jan-2011 Stephen Wilson <wilsons@start.ca> Timeout if we fail to receive a state change event when destroying an inferior.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
07fc7a99c66505152bc9e55ee91a981f78501f31 19-Jan-2011 Stephen Wilson <wilsons@start.ca> Only enqueue valid ProcessLinux messages.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
92241efe8ab5c5cd8d685e86dde28807549fcaf0 16-Jan-2011 Stephen Wilson <wilsons@start.ca> 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
1f004c6c0382f66c2ee83c8826b7ddce9726c66d 15-Jan-2011 Stephen Wilson <wilsons@start.ca> Set the ID of a ProcessLinux instance to the PID of the inferior on launch.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
0131642ef7799ea7da652005715219018eb63178 15-Jan-2011 Stephen Wilson <wilsons@start.ca> Implement ProcessLinux::GetImageInfoAddress().


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
5d187e5495ee17f6763337a6ae28c2a7b07e4945 08-Jan-2011 Greg Clayton <gclayton@apple.com> Spelling changes applied from lldb_spelling.diffs from Bruce Mitchener.

Thanks Bruce!



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
a280e582b222da700fa43378223e3ec556c80b60 04-Jan-2011 Stephen Wilson <wilsons@start.ca> Do not load sections manually when launching a Linux process.

This code was a temporary workaround due to the lack of a dynamic loader plugin
for the Linux platform that has bit rotted over time. Instead of replacing this
hack with another a proper plugin will be developed instead.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
3a80431855f12a4397707176e6947f4b0033cae7 04-Jan-2011 Stephen Wilson <wilsons@start.ca> Update ProcessLinux method signatures to be in line with LLDB's current API.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
f6f40333e91c97cc3b3ad5fb9fc0549079a96788 24-Jul-2010 Stephen Wilson <wilsons@start.ca> Add a new Process plugin for Linux.

This component is still at an early stage, but allows for simple
breakpoint/step-over operations and basic process control.

The makefiles are set up to build the plugin under Linux only.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@109318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp