History log of /external/lldb/source/Plugins/Process/Linux/ProcessLinux.h
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.h
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.h
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.h
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.h
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.h
451a54e89fd311bd908fa0d79b1d8c6d30cd96c0 18-May-2013 Matt Kopec <Matt.Kopec@intel.com> The Linux process plugin wasn't returning the correct linux signals. This fixes that.
Thus, this patch also negates a previous fix for handling SIGCHLD.


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