| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Allow debugserver to be built on a newer kernel and still allow debugging on
older kernels.
llvm-svn: 151827
|
|
|
|
| |
llvm-svn: 151393
|
|
|
|
|
|
|
|
| |
entry" field
of the DSCR to check whether it was because of watchpoint occurred.
llvm-svn: 151333
|
|
|
|
|
|
| |
select mask for WCR.
llvm-svn: 151305
|
|
|
|
|
|
|
| |
calls to dpeend on WITH_SPRINGBOARD and WITH_LOCKDOWN
instead of __arm__. Add an RNBSocket::useFD method.
llvm-svn: 151119
|
|
|
|
| |
llvm-svn: 151071
|
|
|
|
| |
llvm-svn: 151013
|
|
|
|
|
|
|
| |
register set where it could get an error when trying to restore the
fake "f0" - "f7" 12 byte float regs.
llvm-svn: 150781
|
|
|
|
|
|
|
|
| |
otherwise we will have a launched process stopped at the entry point and
it will get reparented when debugserver goes away and we won't be able to
kill the process later.
llvm-svn: 149622
|
|
|
|
|
|
| |
It is incomplete and untested; passes the compilation only.
llvm-svn: 147901
|
|
|
|
|
|
| |
stepping.
llvm-svn: 147886
|
|
|
|
|
|
| |
<rdar://problem/10568492>
llvm-svn: 147883
|
|
|
|
|
|
| |
comma at end of enumerator list
llvm-svn: 147633
|
|
|
|
|
|
|
|
|
| |
We will return a valid range when possible and omit the "permissions" key
when the memory is not readable, writeable or executeable. This will help us
know the difference between an error back from this packet and unsupported,
from just "this address isn't in a valid region".
llvm-svn: 146394
|
|
|
|
| |
llvm-svn: 146271
|
|
|
|
| |
llvm-svn: 146198
|
|
|
|
|
|
| |
Fixed detection of AVX on darwin now that our kernel supports it.
llvm-svn: 146135
|
|
|
|
|
|
| |
class scoping in DumpDBGState()'s definiton.
llvm-svn: 146128
|
|
|
|
| |
llvm-svn: 145978
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from a process and hooked it up to the new packet that was recently added
to our GDB remote executable named debugserver. Now Process has the following
new calls:
virtual Error
Process::GetMemoryRegionInfo (lldb::addr_t load_addr, MemoryRegionInfo &range_info);
virtual uint32_t
GetLoadAddressPermissions (lldb::addr_t load_addr);
Only the first one needs to be implemented by subclasses that can add this
support.
Cleaned up the way the new packet was implemented in debugserver to be more
useful as an API inside debugserver. Also found an error where finding a region
for an address actually will pick up the next region that follows the address
in the query so we also need ot make sure that the address we requested the
region for falls into the region that gets returned.
llvm-svn: 144976
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a more general purpose qMemoryRegionInfo packet which can
describe various attributes about a memory region. Currently it
will return the start address, size, and permissions (read, write,
executable) for the memory region. It may be possible to add
additional attributes in the future such as whether the region is
designated as stack memory or jitted code a la vmmap.
I still haven't implemented the lldb side of the code to use this
packet yet so there may be unexpected behavior - but the basic implementation looks
about right. I'll hook it up to lldb soon and fix any problems that crop up.
llvm-svn: 144175
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
whether a given address is in an executable region of memory or
not. I haven't written the lldb side that will use this packet it
hasn't been tested yet but it's a simple enough bit of code.
I want to have this feature available for the unwinder code. When
we're stopped at an address with no valid symbol context, there are
a number of questions I'd like to ask --
is the current pc value in an executable region (e.g. did they
jump to unallocated/unexecutable memory? we know how to unwind
from here if so.)
Is the stack pointer or the frame pointer the correct register
to use to find the caller's saved pc value?
Once we're past the first frame we can trust things like eh_frame
and ABI unwind schemes but the first frame is challenging and having
a way to check potential addresses to see if they're executable or
not would help narrow down the possibilities a lot.
llvm-svn: 144074
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- If you download and build the sources in the Xcode project, x86_64 builds
by default using the "llvm.zip" checkpointed LLVM.
- If you delete the "lldb/llvm.zip" and the "lldb/llvm" folder, and build the
Xcode project will download the right LLVM sources and build them from
scratch
- If you have a "lldb/llvm" folder already that contains a "lldb/llvm/lib"
directory, we will use the sources you have placed in the LLDB directory.
Python can now be disabled for platforms that don't support it.
Changed the way the libllvmclang.a files get used. They now all get built into
arch specific directories and never get merged into universal binaries as this
was causing issues where you would have to go and delete the file if you wanted
to build an extra architecture slice.
llvm-svn: 143678
|
|
|
|
|
|
| |
the ensuing mayhem.
llvm-svn: 143244
|
|
|
|
|
|
|
|
| |
then we spawn child processes (debugserver, etc) and those bad settings get
inherited. We stop this from happening by correctly mucking with the posix
spawn attributes.
llvm-svn: 143176
|
|
|
|
| |
llvm-svn: 142753
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DNBArchProtocol so that when
the watchpoint state is changed, not only does the change propagate to all the thread instances,
it also updates a global debug state, if chosen by the DNBArchProtocol derivative.
Once implemented, the DNBArchProtocol derivative, also makes sure that when new thread comes along,
it tries to inherit from the global debug state, if it is valid.
Modify TestWatchpointMultipleThreads.py to test this functionality.
llvm-svn: 140811
|
|
|
|
|
|
|
|
|
| |
impl so that
it enables the hardware watchpoint for all existing threads. Add a test file for that.
Also fix MachThreadList::DisableHardwareWatchpoint().
llvm-svn: 140757
|
|
|
|
|
|
| |
Patch by Filipe.
llvm-svn: 140037
|
|
|
|
|
|
|
|
|
| |
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
|