summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process
Commit message (Collapse)AuthorAgeFilesLines
* Added an option to "process detach" to keep the process stopped, if the ↵Jim Ingham2013-04-308-19/+72
| | | | | | | | | | 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
* lldb_private::StopInfo now holds onto a ThreadWP (a ↵Greg Clayton2013-04-291-1/+1
| | | | | | std::weak_ptr<lldb_private::Thread>) in case the thread goes away while the stop info still exists. llvm-svn: 180749
* 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-253-71/+399
| | | | | | | | | | | | | | | | | - 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
* Fix one small whitespace alignment mistake.Jason Molenda2013-04-251-6/+6
| | | | llvm-svn: 180242
* Temporarily recognize exc_type EXC_BREAKPOINT with an exc_code of 0Jason Molenda2013-04-241-0/+7
| | | | | | | | (normally undefined) as indicating a breakpoint hit, in addition to the normal (EXC_BREAKPOINT, EXC_ARM_BREAKPOINT) pair. <rdar://problem/13730366> llvm-svn: 180216
* 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
* Update CMakeLists.txt as per new file RegisterContextDummy.cppDaniel Malea2013-04-221-0/+1
| | | | llvm-svn: 180061
* <rdar://problem/13590152>Enrico Granata2013-04-222-0/+214
| | | | | | | Providing a dummy RegisterContext to secure against faulty Python OS plugins that do not return a valid RegisterContext The RegisterContextDummy exports a PC with a constant 0xFFFFFFFFFFFFFFFF value llvm-svn: 180033
* <rdar://problem/13697881>Greg Clayton2013-04-203-41/+79
| | | | | | Fixed the GDB remote with the python OS plug-in to not show core threads when they aren't desired and also to have the threads "to the right thing" when continuing. llvm-svn: 179912
* Make sure file rangle integers are large enough for very large core files.Greg Clayton2013-04-201-1/+1
| | | | llvm-svn: 179910
* Split Linux-specific and OS X specific stuff. Add include_directoriesFilipe Cabecinhas2013-04-193-6/+16
| | | | | | Only add the -std=c++11 flag when needed, don't touch current flags. llvm-svn: 179821
* 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-187-10/+10
| | | | | | 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-185-7/+7
| | | | | | | | 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
* Handle an edge case where we step into a function whose UnwindPlanJason Molenda2013-04-131-0/+24
| | | | | | | | defines a Return Address register (e.g. lr on arm) but the RA register hasn't been saved anywhere yet -- it is still in a live reg. <rdar://problem/13503130> llvm-svn: 179431
* <rdar://problem/13491977>Greg Clayton2013-04-125-13/+82
| | | | | | | | Made some fixes to the OperatingSystemPython class: - If any thread dictionary contains any "core=N" key/value pairs then the threads obtained from the lldb_private::Process itself will be placed inside the ThreadMemory threads and will be used to get the information for a thread. - Cleaned up all the places where a thread inside a thread was causing problems llvm-svn: 179405
* Fixed the thread list so it correctly updates after the first core thread ↵Greg Clayton2013-04-111-4/+2
| | | | | | exists. llvm-svn: 179326
* Improved reporting of faults on i386.Sean Callanan2013-04-031-1/+8
| | | | | | <rdar://problem/13558979> llvm-svn: 178596
* <rdar://problem/13516463>Greg Clayton2013-04-022-7/+36
| | | | | | Don't crash when there is no register context for a thread with kernel debugging. The kernel debugging uses the OperatingSystemPlugin that may behave badly when trying to get thread state, so be prepared to have invalid register contexts in threads. llvm-svn: 178574
* 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
* Rationalize how we do Halt-ing before Destroy and Detach.Jim Ingham2013-03-292-101/+3
| | | | | | <rdar://problem/13527167> llvm-svn: 178325
* 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-288-45/+50
| | | | | | | | | - 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
* <rdar://problem/13521159>Greg Clayton2013-03-2715-106/+116
| | | | | | | | LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down. All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down. llvm-svn: 178191
* test commitAshok Thirumurthi2013-03-271-1/+1
| | | | | | - modified a comment llvm-svn: 178178
* Add Linux support for reading/writing extended register sets.Matt Kopec2013-03-203-10/+118
| | | | | | Patch by Ashok Thirumurthi. llvm-svn: 177568
* Rollback r177173. Some OSs may not have ptrace extensions which lldb expects ↵Matt Kopec2013-03-154-201/+9
| | | | | | when building. This needs to be accounted for. llvm-svn: 177176
* Add ptrace extensions to query a register set.Matt Kopec2013-03-154-9/+201
| | | | | | Patch by Ashok Thirumurthi. llvm-svn: 177173
* Recommit lldb realtime output for POSIX.Matt Kopec2013-03-143-29/+4
| | | | | | -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
* Remove my print statements I was using for debugging.Greg Clayton2013-03-091-9/+0
| | | | llvm-svn: 176753
* <rdar://problem/13384282> Greg Clayton2013-03-091-17/+62
| | | | | | | | As much as I hate to leave this hacky code in that adds some d and q registers to ARM registers, I must leave it in. The code is now fixed to not just assume ANY arm target will have registers in a certain order. We now verify the common regs are the same name and byte size before adding the d and q regs. llvm-svn: 176752
* Improve/Cleanup ptrace wrapper and remove dependency on user.hMatt Kopec2013-03-066-72/+103
| | | | | | Patch by Ashok Thirumurthi. llvm-svn: 176558
* <rdar://problem/13338643>Greg Clayton2013-03-041-1/+1
| | | | | | | | | | | | | | | | DWARF with .o files now uses 40-60% less memory! Big fixes include: - Change line table internal representation to contain "file addresses". Since each line table is owned by a compile unit that is owned by a module, it makes address translation into lldb_private::Address easy to do when needed. - Removed linked address members/methods from lldb_private::Section and lldb_private::Address - lldb_private::LineTable can now relink itself using a FileRangeMap to make it easier to re-link line tables in the future - Added ObjectFile::ClearSymtab() so that we can get rid of the object file symbol tables after we parse them once since they are not needed and kept memory allocated for no reason - Moved the m_sections_ap (std::auto_ptr to section list) and m_symtab_ap (std::auto_ptr to the lldb_private::Symtab) out of each of the ObjectFile subclasses and put it into lldb_private::ObjectFile. - Changed how the debug map is parsed and stored to be able to: - Lazily parse the debug map for each object file - not require the address map for a .o file until debug information is linked for a .o file llvm-svn: 176454
* ProcessMachCore had (until 2013-01-29) some simple checks to find a kernelJason Molenda2013-03-021-0/+8
| | | | | | | | | | | | | in a core file if it didn't start at the beginning of a memory segment. I added more sophisticated kernel location code to DynamicLoaderDarwinKernel and removed the simple one in ProcessMachCore. Unfortunately the kernel DynamicLoader doesn't get a chance to search around in memory unless there's a hint that this might be a kernel debug session. It was easy ot make the kernel location code static in DynamicLoaderDarwinKernel and call it from ProcessMachCore on the start of the session, so that's what I did. <rdar://problem/13326647> llvm-svn: 176405
* Move m_destroy_in_process to Process (from ProcessKDP) since it is generally ↵Jim Ingham2013-03-012-13/+0
| | | | | | | | | | | | useful, and use it to keep from doing the OS Plugin UpdateThreadList while destroying, since if that does anything that requires the API lock it may deadlock against whoever is running the Process::Destroy. <rdar://problem/13308627> llvm-svn: 176375
* Fix string warning I introduced with indirect function support.Matt Kopec2013-03-011-1/+2
| | | | llvm-svn: 176360
* Patch from Andrew Fish to add recognition of some additionalJason Molenda2013-03-012-3/+154
| | | | | | KDP packets. llvm-svn: 176319
* Add GNU indirect function support in expressions for Linux.Matt Kopec2013-02-274-0/+87
| | | | llvm-svn: 176206
* <rdar://problem/13265297> Greg Clayton2013-02-231-2/+2
| | | | | | StackFrame assumes m_sc is additive, but m_sc can lose its target. So now the SymbolContext::Clear() method takes a bool that indicates if the target should be cleared. Modified all existing code to properly set the bool argument. llvm-svn: 175953
* Fix a handful of remaining assumptions that thread IDs were 32-bitsJason Molenda2013-02-232-14/+14
| | | | | | in the gdb-remote Process plugin files. llvm-svn: 175947
* <rdar://problem/13190981>Greg Clayton2013-02-221-4/+5
| | | | | | Fixed an issue where if we got a 'A' async packet back from debugserver, we would resend the last continue command. We now correctly identify the packet as async (just like the 'O' stdout async packet) and we don't resend the continue command. llvm-svn: 175924
* Adding CMake build system to LLDB. Some known issues remain:Daniel Malea2013-02-218-0/+86
| | | | | | | | | | | | | | - 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
* A little cleanup. {Disable/Enable}Breakpoint actually disables/enables ↵Jim Ingham2013-02-155-22/+22
| | | | | | | | | BreakpointSites not breakpoints, it is confusing to have it not named appropriately. Also in StopInfoMachException, we aren't testing for software or not software, just whether the thing is a breakpoint we set. So don't use "software"... llvm-svn: 175241
* <rdar://problem/13064893>Greg Clayton2013-02-142-43/+32
| | | | | | Poor network connections aren't handled well; commands fail instead of retrying. llvm-svn: 175198
OpenPOWER on IntegriCloud