summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/POSIX
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix setting of watchpoints on inferior thread creation for Linux.Matt Kopec2013-06-036-51/+134
| | | | llvm-svn: 183139
* Matched a vector new with vector delete.Ashok Thirumurthi2013-06-031-1/+1
| | | | | | Thanks to Daniel and valgrind. llvm-svn: 183110
* Add ability to attach/detach to multi-threaded inferiors on Linux.Matt Kopec2013-05-311-2/+9
| | | | | | All running threads will be detected and stopped on attach and all threads get resumed on detach. llvm-svn: 183049
* Adding support for stopping all threads of multithreaded inferiors on Linux. ↵Andrew Kaylor2013-05-285-49/+137
| | | | | | Also adding multithreaded test cases. llvm-svn: 182809
* Prevent convenience registers from being included in "read register" as they ↵Ashok Thirumurthi2013-05-131-1/+4
| | | | | | | | | 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. llvm-svn: 181737
* Fixed expression evaluation with convenience registers.Ashok Thirumurthi2013-05-132-5/+18
| | | | | | | - Also improved test coverage for passing tests to include expr/x and a sanity check for $eax as the lower half of $rax. llvm-svn: 181727
* Add a new constructor with ConstString (and not only const char *). ↵Sylvestre Ledru2013-05-131-0/+5
| | | | | | Hopefully fixes the build of lldb llvm-svn: 181694
* Fixed "log enable linux registers" and added a test.Ashok Thirumurthi2013-05-0911-53/+69
| | | | | | | | | | - 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. llvm-svn: 181538
* Fixed a build failure introduced by r181501.Ashok Thirumurthi2013-05-091-1/+1
| | | | | | Patch by Yao Qi. llvm-svn: 181511
* Changed the formerly pure virtual function:Greg Clayton2013-05-092-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | namespace lldb_private { class Thread { virtual lldb::StopInfoSP GetPrivateStopReason() = 0; }; } To not be virtual. The lldb_private::Thread now handles the correct caching and will call a new pure virtual function: namespace lldb_private { class Thread { virtual bool CalculateStopInfo() = 0; } } This function must be overridden by thead lldb_private::Thread subclass and the only thing it needs to do is to set the Thread::StopInfo() with the current stop reason and return true, or return false if there is no stop reason. The lldb_private::Thread class will take care of calling this function only when it is required. This allows lldb_private::Thread subclasses to be a bit simpler and not all need to duplicate the cache and invalidation settings. Also renamed: lldb::StopInfoSP lldb_private::Thread::GetPrivateStopReason(); To: lldb::StopInfoSP lldb_private::Thread::GetPrivateStopInfo(); Also cleaned up a case where the ThreadPlanStepOverBreakpoint might not re-set its breakpoint if the thread disappears (which was happening due to a bug when using the OperatingSystem plug-ins with memory threads and real threads). llvm-svn: 181501
* Fix assertion from previous fix for debian os watchpoints.Matt Kopec2013-05-081-1/+1
| | | | | | Also mark one of the tests as expected fail on Linux due to the debian fix. llvm-svn: 181448
* Attempt to fix failing watchpoints for debian os buildbot.Matt Kopec2013-05-081-0/+14
| | | | llvm-svn: 181447
* Adding support for process attach by pid on Linux.Andrew Kaylor2013-05-071-1/+34
| | | | llvm-svn: 181374
* Add watchpoint support for Linux on 64-bit host.Matt Kopec2013-05-0710-2/+542
| | | | llvm-svn: 181341
* Reinstating r181091 and r181106 with fix for Linux regressions.Andrew Kaylor2013-05-072-10/+8
| | | | llvm-svn: 181340
* Refactoring for struct UserArea:Ashok Thirumurthi2013-05-035-115/+117
| | | | | | | | | | | | | - 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 llvm-svn: 181055
* Update CMakeLists with RegisterContext* files addedDaniel Malea2013-05-021-0/+2
| | | | llvm-svn: 180920
* Recommitting r180831 with trivial fix - remember to return errors if you ↵Jim Ingham2013-05-022-2/+9
| | | | | | compute. llvm-svn: 180898
* <rdar://problem/13700260>Greg Clayton2013-05-012-11/+4
| | | | | | | | | | | | | | <rdar://problem/13723772> Modified the lldb_private::Thread to work much better with the OperatingSystem plug-ins. Operating system plug-ins can now return have a "core" key/value pair in each thread dictionary for the OperatingSystemPython plug-ins which allows the core threads to be contained with memory threads. It also allows these memory threads to be stepped, resumed, and controlled just as if they were the actual backing threads themselves. A few things are introduced: - lldb_private::Thread now has a GetProtocolID() method which returns the thread protocol ID for a given thread. The protocol ID (Thread::GetProtocolID()) is usually the same as the thread id (Thread::GetID()), but it can differ when a memory thread has its own id, but is backed by an actual API thread. - Cleaned up the Thread::WillResume() code to do the mandatory parts in Thread::ShouldResume(), and let the thread subclasses override the Thread::WillResume() which is now just a notification. - Cleaned up ClearStackFrames() implementations so that fewer thread subclasses needed to override them - Changed the POSIXThread class a bit since it overrode Thread::WillResume(). It is doing the wrong thing by calling "Thread::SetResumeState()" on its own, this shouldn't be done by thread subclasses, but the current code might rely on it so I left it in with a TODO comment with an explanation. llvm-svn: 180886
* Platform-specific specialization for the GPR register file.Ashok Thirumurthi2013-05-017-151/+507
| | | | | | | | - Required for platform-independant handling of general purpose registers (i.e. for core dumps). Thanks to Samuel Jacob for this patch. llvm-svn: 180878
* Reverting 180831 as it crashes TestDefaultConstructorForAPIObjects.pyDaniel Malea2013-05-012-9/+2
| | | | llvm-svn: 180868
* Added an option to "process detach" to keep the process stopped, if the ↵Jim Ingham2013-04-302-2/+9
| | | | | | | | | | process plugin (or in the case of ProcessGDBRemote the stub we are talking to) know how to do that. rdar://problem/13680832 llvm-svn: 180831
* Build fix for systems that do not support NT_X86_XSTATE ptrace support.Matt Kopec2013-04-251-0/+5
| | | | | | Patch by Ashok Thirumurthi. llvm-svn: 180581
* Adds 64-bit POSIX support for AVXAshok Thirumurthi2013-04-252-71/+395
| | | | | | | | | | | | | | | | | - 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. llvm-svn: 180572
* Added 64-bit POSIX support to write floating-point vector registers.Ashok Thirumurthi2013-04-231-1/+9
| | | | | | | | - Includes tests that write, read and verify vector register content. Reviewed by: Daniel Malea llvm-svn: 180143
* Added 64-bit POSIX support to write general-purpose floating-point registers.Ashok Thirumurthi2013-04-231-4/+40
| | | | | | | | - Includes tests that write, verify and restore floating-point register content using SBFrame. Reviewed by: Daniel Malea llvm-svn: 180111
* More fallout unique_ptr changes for from ↵Greg Clayton2013-04-181-1/+1
| | | | | | http://lab.llvm.org:8011/builders/lldb-x86_64-linux/builds/3565. llvm-svn: 179815
* After discussing with Chris Lattner, we require C++11, so lets get rid of ↵Greg Clayton2013-04-181-1/+1
| | | | | | the macros and just use C++11. llvm-svn: 179805
* Since we use C++11, we should switch over to using std::unique_ptr when ↵Greg Clayton2013-04-181-1/+1
| | | | | | | | C++11 is being used. To do this, we follow what we have done for shared pointers and we define a STD_UNIQUE_PTR macro that can be used and it will "do the right thing". Due to some API differences in std::unique_ptr and due to the fact that we need to be able to compile without C++11, we can't use move semantics so some code needed to change so that it can compile with either C++. Anyone wanting to use a unique_ptr or auto_ptr should now use the "STD_UNIQUE_PTR(TYPE)" macro. llvm-svn: 179779
* Fix bug in ProcessPOSIX::IsAlive() exposed by r178324Daniel Malea2013-04-011-1/+4
| | | | | | | - process in 'unloaded' state was (incorrectly) considered to be alive by POSIX plugin - above caused a regression in TestProcessLaunch cases llvm-svn: 178493
* Introduces extended register sets whose availability can vary with the ↵Ashok Thirumurthi2013-03-282-15/+87
| | | | | | | | | | 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. llvm-svn: 178252
* Fix the Linux build issues introduced by r178191.Ashok Thirumurthi2013-03-285-35/+40
| | | | | | | | | - All Linux logging channels now use a single global instance of lldb_private::Log, to handle the case of logging during process tear down. - Also removed a single use of LogSP in FreeBSD and fixed a typo in a comment while reading through ProcessKDPLog. Reviewed by Daniel Malea. llvm-svn: 178242
* Recommit lldb realtime output for POSIX.Matt Kopec2013-03-142-28/+2
| | | | | | -Adds workaround for assertion in lldb for TestEvents.py llvm-svn: 177116
* Backout POSIX realtime lldb output. TestEvents.py is causing lldb to assert.Matt Kopec2013-03-142-2/+28
| | | | llvm-svn: 177076
* Change Linux/POSIX to output inferior output in realtime.Matt Kopec2013-03-112-28/+2
| | | | llvm-svn: 176833
* Improve/Cleanup ptrace wrapper and remove dependency on user.hMatt Kopec2013-03-062-6/+6
| | | | | | Patch by Ashok Thirumurthi. llvm-svn: 176558
* Fix string warning I introduced with indirect function support.Matt Kopec2013-03-011-1/+2
| | | | llvm-svn: 176360
* Add GNU indirect function support in expressions for Linux.Matt Kopec2013-02-272-0/+16
| | | | llvm-svn: 176206
* Adding CMake build system to LLDB. Some known issues remain:Daniel Malea2013-02-211-0/+15
| | | | | | | | | | | | | | - generate-vers.pl has to be called by cmake to generate the version number - parallel builds not yet supported; dependency on clang must be explicitly specified Tested on Linux. - Building on Mac will require code-signing logic to be implemented. - Building on Windows will require OS-detection logic and some selective directory inclusion Thanks to Carlo Kok (who originally prepared these CMakefiles for Windows) and Ben Langmuir who ported them to Linux! llvm-svn: 175795
* Add i386 register support for the x86_64 RegisterContext plugin. This allows ↵Matt Kopec2013-02-193-229/+407
| | | | | | debugging a 32-bit inferior on 64-bit lldb/host. llvm-svn: 175543
* Rename [Enable|Disable]Breakpoint() to [Enable|Disable]BreakpointSite() in ↵Daniel Malea2013-02-152-4/+4
| | | | | | | | POSIX plugin - needed due to r175241 llvm-svn: 175290
* Allow expression evaluation to work when multiple threads exist in the ↵Daniel Malea2013-02-131-0/+4
| | | | | | | | inferior (on Linux) - handle m_resume_state == eStateStopped || eStateSuspended in DoResume rather than asserting llvm-svn: 175094
* Fix buildbot building errors.Greg Clayton2013-01-254-8/+8
| | | | llvm-svn: 173473
* Add initial support to trace spawned threads in a process on Linux.Matt Kopec2013-01-087-4/+115
| | | | llvm-svn: 171864
* Implement -w flag to process launch (allow launching inferior process in ↵Daniel Malea2013-01-081-1/+13
| | | | | | | | different working directory) on Linux/FreeBSD - fixes test case TestProcessLaunch llvm-svn: 171854
* Fix TestSendSignals.py on Linux. The wrong stop reason was being set when ↵Matt Kopec2013-01-081-2/+1
| | | | | | stopping for a received signal. llvm-svn: 171819
* Adding eStopReasonThreadExiting and fixing the handling of this state on Linux.Andrew Kaylor2012-12-201-3/+3
| | | | llvm-svn: 170800
* Allow reading registers by thread ID in ProcessMonitor (Linux implementation)Daniel Malea2012-12-182-10/+10
| | | | | | | | - make FreeBSD ProcessMonitor API thread-ready Patch by Matt Kopec! llvm-svn: 170445
* Change crash handling to use eStateStopped rather than eStateCrashed.Andrew Kaylor2012-12-141-1/+2
| | | | llvm-svn: 170224
* Fix a few more clang (3.2) warnings on Linux:Daniel Malea2012-12-071-0/+4
| | | | | | | | | | | | | | | | | - remove unused members - add NO_PEDANTIC to selected Makefiles - fix return values (removed NULL as needed) - disable warning about four-char-constants - remove unneeded const from operator*() declaration - add missing lambda function return types - fix printf() with no format string - change sizeof to use a type name instead of variable name - fix Linux ProcessMonitor.cpp to be 32/64 bit friendly - disable warnings emitted by swig-generated C++ code Patch by Matt Kopec! llvm-svn: 169645
OpenPOWER on IntegriCloud