summaryrefslogtreecommitdiffstats
path: root/lldb/tools/debugserver/source/MacOSX/x86_64
Commit message (Collapse)AuthorAgeFilesLines
...
* Added more logging, and renamed FPR to FPU in a the register set/flavor enum.Greg Clayton2011-09-172-9/+39
| | | | llvm-svn: 139982
* Foe x86_64/i386, piggyback the hardware index of the fired watchpoint in the ↵Johnny Chen2011-09-171-0/+4
| | | | | | | | | | exception data sent back to the debugger. On the debugger side, use the opportunity during the StopInfoMachException::CreateStopReasonWithMachException() method to set the hardware index for the very watchpoint location. llvm-svn: 139975
* Watchpoint WIP:Johnny Chen2011-09-131-12/+12
| | | | | | | | | | | | | | | | | o WatchpointLocationList: Add a GetListMutex() method. o WatchpointLocation: Fix Dump() method where there was an extra % in the format string. o Target.cpp: Add implementation to CreateWatchpointLocation() to create and enable a watchpoint. o DNBArchImplX86_64.cpp: Fix bugs in SetWatchpoint()/ClearWatchpoint() where '==' was used, instead of '=', to assign/reset the data break address to a debug register. Also fix bugs where a by reference debug_state should have been used, not by value. llvm-svn: 139666
* Reset the debug status register, only if necessary, before we resume,Johnny Chen2011-09-091-4/+13
| | | | | | which saves unnecessary traffic to the kernel. llvm-svn: 139410
* Added comments about exception code.Johnny Chen2011-09-081-0/+2
| | | | llvm-svn: 139294
* Add logic to the DNBArchImplX86_64/DNBArchImplI386::NotifyException() ↵Johnny Chen2011-09-082-3/+37
| | | | | | | | | | | | | callback method in order to distinguish the real single step exception from a watchpoint exception which uses the same exc_type of EXC_BREAKPOINT and exc_code of EXC_I386_SGL. This is done by checking the debug status register to find out whether the watchpoint data break event has fired, and, if yes, stuff the data break address into the exception's exc_sub_code field on the debugserver side for lldb to consume on the other end. llvm-svn: 139274
* Watchpoint work in progress:Johnny Chen2011-09-022-0/+35
| | | | | | | | | | | Add a virtual method GetHardwareWatchpointHit() to the DNBArchProtocol base class which consults the architecture to return the watchpoint hit; otherwise return an invalid index. Add impl. of the method to X86_64 and I386 subclasses, plus reset the debug status register before we resume execution of the inferior thread. llvm-svn: 139034
* Renaming: from IsVacantWatchpoint() to IsWatchpointVacant().Johnny Chen2011-08-312-4/+4
| | | | llvm-svn: 138907
* Renamed the helper method to ClearWatchpointHits() for clarity of its purpose.Johnny Chen2011-08-312-2/+2
| | | | llvm-svn: 138899
* Add a couple of helper methods to check/clear the debug status registerJohnny Chen2011-08-312-0/+25
| | | | | | which contains the watchpoint hit information. llvm-svn: 138881
* Fix the shift amount applied to size_and_rw_bits() for debug control register,Johnny Chen2011-08-311-1/+2
| | | | | | which did not take into account the hardware index. llvm-svn: 138867
* Update comments.Johnny Chen2011-08-311-2/+2
| | | | llvm-svn: 138863
* Watchpoint work in progress: add helper methods to DNB arch impl for I386 to ↵Johnny Chen2011-08-311-3/+2
| | | | | | implment Enable/DisableHardwareWatchpoint. llvm-svn: 138847
* Watchpoint work in progress: add helper methods to DNB arch impl for X86_64 ↵Johnny Chen2011-08-312-43/+117
| | | | | | to implment Enable/DisableHardwareWatchpoint. llvm-svn: 138844
* Add stubs of incomplete watchpoint implementation with "FIXME" markers.Johnny Chen2011-08-302-0/+115
| | | | llvm-svn: 138790
* Added the debug registers for i386 and x86_64 in preparation for watchpoints.Greg Clayton2011-08-293-7/+53
| | | | llvm-svn: 138770
* Fixed a problem where the HasAVX() code inSean Callanan2011-08-091-7/+0
| | | | | | | | debugserver did not back up %ebx/%rbx, even though it was being clobbered by the CPUID instruction. llvm-svn: 137131
* The "bool HasAVX()" function doesn't backup and restore theGreg Clayton2011-08-091-0/+7
| | | | | | | | cpu registers it uses and it crashes the release version of debugserver. We just get lucky in Debug builds. Until this is fixed I am disabling AVX detection to avoid the crashes. llvm-svn: 137113
* Added support for dynamic detection of AVX, andSean Callanan2011-07-162-8/+9
| | | | | | | | | | | | | | | | | | | | fixed a few bugs that revealed. Now the "register read" command should show AVX registers (ymm0-ymm15) on Mac OS X platforms that support them. When testing this on Mac OS X, run debugserver manually, like this: debugserver --native-regs localhost:1111 /path/to/executable Then lldb /path/to/executable ... (lldb) process connect connect://localhost:1111 llvm-svn: 135331
* Added the ability to see block variables when looking up addressesGreg Clayton2011-07-111-7/+7
| | | | | | | | | | | | with the "target modules lookup --address <addr>" command. The variable ID's, names, types, location for the address, and declaration is displayed. This can really help with crash logs since we get, on MacOSX at least, the registers for the thread that crashed so it is often possible to figure out some of the variable contents. llvm-svn: 134886
* Added generic register numbers for simple ABI argument registers and definedGreg Clayton2011-05-151-10/+11
| | | | | | | | | | | | | | | | | the appropriate registers for arm and x86_64. The register names for the arguments that are the size of a pointer or less are all named "arg1", "arg2", etc. This allows you to read these registers by name: (lldb) register read arg1 arg2 arg3 ... You can also now specify you want to see alternate register names when executing the read register command: (lldb) register read --alternate (lldb) register read -A llvm-svn: 131376
* Change an unconditional log to a conditional one.Jim Ingham2011-05-091-2/+2
| | | | llvm-svn: 131079
* Added new OptionGroup classes for UInt64, UUID, File and Boolean values.Greg Clayton2011-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | Removed the "image" command and moved it to "target modules". Added an alias for "image" to "target modules". Added some new target commands to be able to add and load modules to a target: (lldb) target modules add <path> (lldb) target modules load [--file <path>] [--slide <offset>] [<sect-name> <sect-load-addr> ...] So you can load individual sections without running a target: (lldb) target modules load --file /usr/lib/libSystem.B.dylib __TEXT 0x7fccc80000 __DATA 0x1234000000 Or you can rigidly slide an entire shared library: (lldb) target modules load --file /usr/lib/libSystem.B.dylib --slid 0x7fccc80000 This should improve bare board debugging when symbol files need to be slid around manually. llvm-svn: 130796
* Added AVX support to the Intel portion of debugserver. AVXSean Callanan2011-03-223-183/+837
| | | | | | | autodetection is not yet implemented, but the structures and register reading/writing code are there. llvm-svn: 128111
* Took the timeout for a ClangUserExpression down from a 10 second timeout toGreg Clayton2011-01-191-0/+7
| | | | | | | | | | | | | | 500 ms. Make MachThreadList more threadsafe. Added code to make sure the thread register state was properly flushed for x86_64. Fixed an missing return code for the current thread in the new thread suffix code. Improved debugserver logging. llvm-svn: 123815
* Thread safety changes in debugserver and also in the process GDB remote plugin.Greg Clayton2011-01-181-2/+0
| | | | | | | | | | | | | | I added support for asking if the GDB remote server supports thread suffixes for packets that should be thread specific (register read/write packets) because the way the GDB remote protocol does it right now is to have a notion of a current thread for register and memory reads/writes (set via the "$Hg%x" packet) and a current thread for running ("$Hc%x"). Now we ask the remote GDB server if it supports adding the thread ID to the register packets and we enable that feature in LLDB if supported. This stops us from having to send a bunch of packets that update the current thread ID to some value which is prone to error, or extra packets. llvm-svn: 123762
* Fixed Process::Halt() as it was broken for "process halt" after recent changesGreg Clayton2010-11-182-30/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | to the DoHalt down in ProcessGDBRemote. I also moved the functionality that was in ProcessGDBRemote::DoHalt up into Process::Halt so not every class has to implement a tricky halt/resume on the internal state thread. The functionality is the same as it was before with two changes: - when we eat the event we now just reuse the event we consume when the private state thread is paused and set the interrupted bool on the event if needed - we also properly update the Process::m_public_state with the state of the event we consume. Prior to this, if you issued a "process halt" it would eat the event, not update the process state, and then produce a new event with the interrupted bit set and send it. Anyone listening to the event would get the stopped event with a process that whose state was set to "running". Fixed debugserver to not have to be spawned with the architecture of the inferior process. This worked fine for launching processes, but when attaching to processes by name or pid without a file in lldb, it would fail. Now debugserver can support multiple architectures for a native debug session on the current host. This currently means i386 and x86_64 are supported in the same binary and a x86_64 debugserver can attach to a i386 executable. This change involved a lot of changes to make sure we dynamically detect the correct registers for the inferior process. llvm-svn: 119680
* Another patch from Jean-Daniel. Thanks.Johnny Chen2010-09-281-2/+2
| | | | | | Error in dbg server -> MachProcess::SetProcessID() and misc changes to make clang++ happy. llvm-svn: 114962
* Initial checkin of lldb code from internal Apple repo.Chris Lattner2010-06-082-0/+1234
llvm-svn: 105619
OpenPOWER on IntegriCloud