| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
We had some cases where getting the shared pointer for a module from
the global module list was causing a performance issue when debugging
with DWARF in .o files. Now that the module uses intrusive ref counts,
we can easily convert any pointer to a shared pointer.
llvm-svn: 139983
|
|
|
|
| |
llvm-svn: 139982
|
|
|
|
|
|
|
| |
cases where we were returning no error even though this packet
was failing.
llvm-svn: 139981
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 139800
|
|
|
|
|
|
|
|
|
|
| |
process
the passed in (MachException::Data &)exc first before possible reassignment of the
member m_stop_exception with exc. This allows lldb to stop at the watchpoint of
a simple test program.
llvm-svn: 139767
|
|
|
|
|
|
| |
instead of '=') and (by value instead of by reference).
llvm-svn: 139667
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
which saves unnecessary traffic to the kernel.
llvm-svn: 139410
|
|
|
|
|
|
| |
Mac OS X to track the allocation history of pointers on the target process
llvm-svn: 139337
|
|
|
|
| |
llvm-svn: 139294
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
(MachThreadList::EnableHardwareWatchpoint()) where the watchpoint is not associated
with a thread and the current thread, if set, is returned, otherwise we return the
first thread.
Plus minor change to RNBRemote::HandlePacket_z() to use the existing macros to check
the validity of break_id/watch_id.
llvm-svn: 139246
|
|
|
|
|
|
|
|
| |
INVALID_NUB_WATCH_ID
to determine its validity.
llvm-svn: 139209
|
|
|
|
|
|
|
|
|
| |
argument.
Plus for watchpoint related functions, add new macros INVALID_NUB_WATCH_ID and
NUB_WATCH_ID_IS_VALID and use them, instead.
llvm-svn: 139163
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 138907
|
|
|
|
| |
llvm-svn: 138899
|
|
|
|
|
|
| |
which contains the watchpoint hit information.
llvm-svn: 138881
|
|
|
|
|
|
| |
which did not take into account the hardware index.
llvm-svn: 138867
|
|
|
|
| |
llvm-svn: 138863
|
|
|
|
|
|
| |
implment Enable/DisableHardwareWatchpoint.
llvm-svn: 138847
|
|
|
|
|
|
| |
to implment Enable/DisableHardwareWatchpoint.
llvm-svn: 138844
|
|
|
|
| |
llvm-svn: 138790
|
|
|
|
| |
llvm-svn: 138770
|
|
|
|
| |
llvm-svn: 138763
|
|
|
|
| |
llvm-svn: 137782
|
|
|
|
| |
llvm-svn: 137547
|
|
|
|
| |
llvm-svn: 137326
|
|
|
|
| |
llvm-svn: 137319
|
|
|
|
| |
llvm-svn: 137288
|
|
|
|
| |
llvm-svn: 137287
|
|
|
|
| |
llvm-svn: 137275
|
|
|
|
| |
llvm-svn: 137267
|
|
|
|
|
|
|
|
| |
debugserver did not back up %ebx/%rbx, even
though it was being clobbered by the CPUID
instruction.
llvm-svn: 137131
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 137112
|
|
|
|
| |
llvm-svn: 136606
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the pid of the process currently being debugged by debugserer in
hex, or 0 if unavailable.
This is effectively the same as the qC packet but that packet is
not clear in either its documentation or implementation (in gdb et al)
as to whether it is intended to return a pid or a thread id. qGetPid
is unambiguous.
If qGetPid is unimplemented in the remote debugserver, the debugger may
try qC and see what kind of value is returned..
llvm-svn: 136055
|
|
|
|
|
|
|
|
| |
been suspended from outside
the debugger, resume it before running so we will actually make progress.
llvm-svn: 135655
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
but we don't have an error message.
llvm-svn: 134662
|
|
|
|
| |
llvm-svn: 134232
|
|
|
|
| |
llvm-svn: 133865
|
|
|
|
|
|
|
|
|
| |
arguments in hex-encoded form instead of the old QEnvironment packet
which takes them as plain-text strings. Environment variables
containing remote protocol special chars like '#' would fail to set
with QEnvironment.
llvm-svn: 133857
|
|
|
|
| |
llvm-svn: 132597
|
|
|
|
| |
llvm-svn: 132123
|
|
|
|
| |
llvm-svn: 132067
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parse NOP instructions. I added the new table entries for the NOP for the
plain NOP, Yield, WFE, WFI, and SEV variants. Modified the opcode emulation
function EmulateInstructionARM::EmulateMOVRdSP(...) to notify us when it is
creating a frame. Also added an abtract way to detect the frame pointer
register for both the standard ARM ABI and for Darwin.
Fixed GDBRemoteRegisterContext::WriteAllRegisterValues(...) to correctly be
able to individually write register values back if case the 'G' packet is
not implemented or returns an error.
Modified the StopInfoMachException to "trace" stop reasons. On ARM we currently
use the BVR/BCR register pairs to say "stop when the PC is not equal to the
current PC value", and this results in a EXC_BREAKPOINT mach exception that
has 0x102 in the code.
Modified debugserver to create the short option string from long option
definitions to make sure it doesn't get out of date. The short option string
was missing many of the newer short option values due to a modification of
the long options defs, and not modifying the short option string.
llvm-svn: 131911
|