History log of /external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/POSIX/RegisterContext_x86_64.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/POSIX/RegisterContext_x86_64.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/POSIX/RegisterContext_x86_64.cpp
77e1b85eaaa20f7650c894c9a1515d581e4a07ef 24-Jun-2013 Andy Gibbs <andyg1001@hotmail.co.uk> Using offsetof to an item within an array is an extension so mark it as such to avoid compiler warnings.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
aeb2faf0a2bbb38ecc6ab05955bd80ef69bf9020 18-Jun-2013 Matt Kopec <Matt.Kopec@intel.com> Add assertion for when no watchpoint found in POSIX watchnotify handler.
Also, ensure x86_64 watchpoint registers are initialized before they are accessed on the POSIX side.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
12c5bf31a5a3f96970b4101495ecbcc8449e12f6 03-Jun-2013 Matt Kopec <Matt.Kopec@intel.com> Fix setting of watchpoints on inferior thread creation for Linux.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
2e4c63baa530e1a1952e5e44f8f3c26580f27544 13-May-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Prevent convenience registers from being included in "read register" as they are derived registers.

- Also refactors TestRegisters.py because test_convenience_registers_with_process_attach now fails with an assert.

TODO: Cross-reference the skipOnLinux decorator with a bugzilla report after root-causing this issue.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
de0201e8b6340994303dcd29526d633dcbca676e 13-May-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Fixed expression evaluation with convenience registers.

- Also improved test coverage for passing tests to include expr/x
and a sanity check for $eax as the lower half of $rax.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
c73fedb63ab170d711fb73d198451eb8db710e8d 09-May-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Fixed "log enable linux registers" and added a test.
- Eliminated the use of static for methods that read m_register_infos, so that these routines can be implemented in the base class.
- Eliminated m_register_infos in the base class because this is not used when derived classes call UpdateRegisterInfo.
- Also moved the namespace using declarations from headers to source files.

Thanks to Daniel and Samuel for their review feedback.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
3d4d51cd1bdef32ab61ba9e1de75d5a4f4c1dbed 07-May-2013 Matt Kopec <Matt.Kopec@intel.com> Add watchpoint support for Linux on 64-bit host.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
26aa43bcbccc89d7b52adfed26c545430c021635 03-May-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Refactoring for struct UserArea:
- Decouples RegisterContext_x86_64 from UserArea.
- Restores the original definition of UserArea so that it can be used to generate offsets for use with ptrace.
- Moves UserArea to the 64-bit Linux specialization.

- Also fixes an off-by-one error for the size of m_gpr.
- Also adds a TODO comment noting the need for a mechanism to identify the correct plugin based on the target OS (and architecture).

Reviewed by: Matt Kopec and Samuel Jacob


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
dae196da3bf9c181405c9c0c1083069dc007e318 01-May-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Platform-specific specialization for the GPR register file.
- Required for platform-independant handling of general purpose registers (i.e. for core dumps).

Thanks to Samuel Jacob for this patch.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
1691dd2c701b431b4965f5daf1124e652c0a86fc 26-Apr-2013 Matt Kopec <Matt.Kopec@intel.com> Build fix for systems that do not support NT_X86_XSTATE ptrace support.

Patch by Ashok Thirumurthi.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
66bd7d7ed3f05ea14fe0630726835ddeb2d07be7 25-Apr-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Adds 64-bit POSIX support for AVX
- Adds unique enums for ymm registers to the ABI and the POSIX register context.
- Reworks the register context data structures to support a union of FXSAVE and XSAVE
--- Allows the same code base to deal with the FPU independent of the availability of AVX.
- Determine if AVX is supported by attempting to read XSAVE using ptrace.
--- Support an extended register set for avx registers if available.
- Provide a mechanism to assemble/parse register halves into a single ymm buffer for use with RegisterValue.
--- Reworked Read/WriteRegister routines to read/write/parse ymm registers.

Adds tests for ymm register write with read-back, and expressions involving ymm registers.
- Tests vary depending on the availability of an avx register set.

Thanks to Daniel and Matt for their reviews.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
538d3054100ed53ffc78f382296e35505f4aa946 23-Apr-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Added 64-bit POSIX support to write floating-point vector registers.
- Includes tests that write, read and verify vector register content.

Reviewed by: Daniel Malea


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
3a5c74d169ae862dfe4ca1d04717d952bfaa1d18 23-Apr-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Added 64-bit POSIX support to write general-purpose floating-point registers.
- Includes tests that write, verify and restore floating-point register content using SBFrame.

Reviewed by: Daniel Malea


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
0852cbb9660c92a448468a8ec7c39fb7245eca57 28-Mar-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Introduces extended register sets whose availability can vary with the target processor.
- Includes a stub for AVX support in the x86-64 register context and a failing test for register sets that are unavailable.

Thanks to Greg Clayton for his review feedback.




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
247bc3a7bb79482185bd6dedb0b9f8b5eefd8ca1 06-Mar-2013 Matt Kopec <Matt.Kopec@intel.com> Improve/Cleanup ptrace wrapper and remove dependency on user.h

Patch by Ashok Thirumurthi.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
253dbb4618f89b43b50aba42f3364175f4b65524 19-Feb-2013 Matt Kopec <Matt.Kopec@intel.com> Add i386 register support for the x86_64 RegisterContext plugin. This allows debugging a 32-bit inferior on 64-bit lldb/host.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
2989a5aec5b5e313e0885c215681c68151e7c4bb 25-Jan-2013 Greg Clayton <gclayton@apple.com> Fix buildbot building errors.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
dca8c9f11ad6b115b77b870d9b7b424456bb3295 18-Dec-2012 Daniel Malea <daniel.malea@intel.com> Allow reading registers by thread ID in ProcessMonitor (Linux implementation)
- make FreeBSD ProcessMonitor API thread-ready

Patch by Matt Kopec!



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
b2c1a4102e3bc13ac89d605fbe524d60daf5e5de 24-Oct-2012 Greg Clayton <gclayton@apple.com> Patch from Ashok Thirumurthi that enabled FPU registers for POSIX x86_64.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
402607fe513617c06282d4ae479522e244a53b71 29-Feb-2012 Johnny Chen <johnny.chen@apple.com> rdar://problem/10652076

Initial step -- infrastructure change -- to fix the bug. Change the RegisterInfo data structure
to contain two additional fields (uint32_t *value_rges and uint32_t *invalidate_regs) to facilitate
architectures which have register mapping.

Update all existing RegsiterInfo arrays to have two extra NULL's (the additional fields) in each row,
GDBRemoteRegisterContext.cpp is modified to add d0-d15 and q0-q15 register info entries which take
advantage of the value_regs field to specify the containment relationship:

d0 -> (s0, s1)
...
d15 -> (s30, s31)
q0 -> (d0, d1)
...
q15 -> (d30, d31)


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.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/POSIX/RegisterContext_x86_64.cpp
2341d35bc77ffa8597a85b1ffe50b5653a2ec46d 05-Jan-2012 Johnny Chen <johnny.chen@apple.com> Fix incomplete commit of 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.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp