| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
instead of on the stack. Handles larger packet read requests better.
llvm-svn: 201118
|
|
|
|
|
|
|
|
| |
failure
of sending the error packet.
llvm-svn: 200732
|
|
|
|
|
|
| |
<rdar://problem/15312873>
llvm-svn: 199854
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change does the following:
* Adds Makefile build scripts to debug server.
* Fixes a few small mistakes in the other makefiles.
* Modifies generate-vers.pl slightly to also work for debugserver.
* Changes the OS X, non-framework python search path from libdir to
libdir/python2.X/site-packages where it is installed by the build
system (also where it is installed on other operating systems).
Patch by Keno Fischer.
llvm-svn: 199543
|
|
|
|
|
|
| |
<rdar://problem/15622900>
llvm-svn: 196952
|
|
|
|
|
|
| |
systems.
llvm-svn: 196586
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--reverse-connect option so that debugserver actually connects back to LLDB instead of LLDB connecting to debugserver.
This gets rid of our hacky "get_random_port()" which would grab a random port and tell debugserver to open that port. Now LLDB creates, binds, listens and accepts a connection by binding to port zero and sending the correctly bound port down as the host:port to connect back to.
Fixed the "ConnectionFileDescriptor" to be able to correctly listen for connections from a specified host, localhost, or any host. Prior to this fix "listen://" only accepted the following format:
listen://<port>
But now it can accept:
listen://<port> // Listen for connection from localhost on port <port>
listen://<host>:<port> // Listen for connection from <host> and <port>
listen://*:<port> // Listen for connection from any host on port <port>
llvm-svn: 196547
|
|
|
|
| |
llvm-svn: 196403
|
|
|
|
|
|
|
|
|
|
| |
handshake with the launched debugserver.
This helps ensure that the launched debugserver is ready and listening for a connection. Prior to this we had a race condition.
Consolidate the launching of debugserver into a single place: a static function in GDBRemoteCommunication.
llvm-svn: 196401
|
|
|
|
|
|
| |
Added a new "--port-offset PORT" option to lldb-platform so it can be used with USB mux type scenarios.
llvm-svn: 195486
|
|
|
|
|
|
| |
Fix a small typeo in the i386/x86_64 debugserver plugins.
llvm-svn: 195308
|
|
|
|
|
|
| |
Add a log message to the console that will display the error code when we fail to reply to a mach message.
llvm-svn: 194623
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added two new GDB server packets to debugserver: "QSaveRegisterState" and "QRestoreRegiterState".
"QSaveRegisterState" makes the remote GDB server save all register values and it returns a save identifier as an unsigned integer. This packet can be used prior to running expressions to save all registers.
All registers can them we later restored with "QRestoreRegiterState:SAVEID" what SAVEID is the integer identifier that was returned from the call to QSaveRegisterState.
Cleaned up redundant code in lldb_private::Thread, lldb_private::ThreadPlanCallFunction.
Moved the lldb_private::Thread::RegisterCheckpoint into its own header file and it is now in the lldb_private namespace. Trimmed down the RegisterCheckpoint class to omit stuff that wasn't used (the stack ID).
Added a few new virtual methods to lldb_private::RegisterContext that allow subclasses to efficiently save/restore register states and changed the RegisterContextGDBRemote to take advantage of these new calls.
llvm-svn: 194621
|
|
|
|
|
|
|
|
|
|
|
|
| |
- removed all gaps from the g/G packets
- optimized registers for x86_64 to not send/receive xmm0-xmm15 as well as ymm0-ymm15, now we only send ymm0-15 and xmm0-15 are now pseudo regs
- Fixed x86_64 floating point register gaps
- Fixed x86_64 so that xmm8-xmm15 don't overlap with ymm0-ymm3. This could lead to bad values showing in the debugger and was due to bad register info structure contents
- Fixed i386 so we only send ymm0-ymm7 and xmm0-xmm7 are now pseudo regs.
- Fixed ARM register definitions to not have any gaps
- Fixed it so value registers and invalidation registers are specified using register names which avoid games we had to play with register numbering in the ARM plugin.
llvm-svn: 194302
|
|
|
|
| |
llvm-svn: 193806
|
|
|
|
|
|
| |
<rdar://problem/15148224>
llvm-svn: 192024
|
|
|
|
|
|
|
|
|
|
| |
back in r173096 by Greg. When constructing a g packet or parsing a G packet,
and we're iterate over our register list, skip registers that are actually
just slices of other, real, registers. For instance, eax is 32-bits of rax
on x86_64.
<rdar://problem/15104187>
llvm-svn: 191802
|
|
|
|
|
|
|
|
|
| |
the name of the remote gdb-protocol server, and get
a version number from it. This can be useful if lldb
needs to interoperate with a gdb-protocol server with
a known issue or bug.
llvm-svn: 191729
|
|
|
|
|
|
|
|
| |
- updated RNBDefs.h to allow version numbers to be passed in via preprocessor defines
- update libdebugserver.cpp to compile against latest DNBProcessKill signature
Review: http://llvm-reviews.chandlerc.com/D1331
llvm-svn: 188078
|
|
|
|
|
|
| |
<rdar://problem/14460024>
llvm-svn: 186597
|
|
|
|
| |
llvm-svn: 186596
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that watchpoints
take for threads created while the program is running. Remove the testcase skips from TestConcurrentEvents.py,
since they all pass now, and fix TestWatchpointMultipleThreads.py - which should have caught this problem -
so it doesn't artificially break on new thread creation before the watchpoint triggers.
llvm.org/pr16566
<rdar://problem/14383244>
llvm-svn: 186132
|
|
|
|
|
|
| |
Found a race condition when killing an application where the state could be set to exited by the waitpid_thread() _before_ we call task resume (via MachProcess::PrivateResume()) in MachProcess::Kill().
llvm-svn: 185048
|
|
|
|
|
|
| |
Much faster way to get dirty size.
llvm-svn: 185033
|
|
|
|
|
|
|
| |
Match up with top’s implementation on recent Cab as API has changed a bit.
Tested the same binary running on Zin as well. Tested ARM binary on iOS as well.
llvm-svn: 185017
|
|
|
|
|
|
|
|
|
| |
for any reason, use debugserver own's cputype as a best guess when
we reply to the debugger's qProcessInfo packet or when initializing
our register tables.
<rdar://problem/13406879>
llvm-svn: 184829
|
|
|
|
|
|
|
|
|
| |
support files for debugserver to fix a build failure for arm. Also
remove some of the code used for software-driven single instruction
stepping; this is slowly being yanked out and these particular bits
overlap with the nub_break_t going away.
llvm-svn: 184828
|
|
|
|
|
|
|
|
|
|
| |
325,000 breakpoints for running "breakpoint set --func-regex ." on lldb itself (after hitting a breakpoint at main so that LLDB.framework is loaded) used to take up to an hour to set, now we are down under a minute. With warm file caches, we are at 40 seconds, and that is with setting 325,000 breakpoint through the GDB remote API. Linux and the native debuggers might be faster. I haven't timed what how much is debug info parsing and how much is the protocol traffic to/from GDB remote.
That there were many performance issues. Most of them were due to storing breakpoints in the wrong data structures, or using the wrong iterators to traverse the lists, traversing the lists in inefficient ways, and not optimizing certain function name lookups/symbol merges correctly.
Debugging after that is also now very efficient. There were issues with replacing the breakpoint opcodes in memory that was read, and those routines were also fixed.
llvm-svn: 183820
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is passed into debugserver.
you can now specify:
debugserver host:port
debugserver port
debugserver /path/to/file
When "host" is specified, we will only accept connections from that host. If host is not specified, we default to "localhost".
llvm-svn: 183457
|
|
|
|
|
|
|
| |
Changes after feedback:
Directly use function pointer, just to be safer on 10.8.
llvm-svn: 182529
|
|
|
|
|
|
| |
Collect 'anonymous memory' info, if possible
llvm-svn: 182523
|
|
|
|
|
|
| |
LLDB can now debug across calls to exec when the architecture changes from say i386 to x86_64 (on darwin).
llvm-svn: 182345
|
|
|
|
|
|
| |
Fixed a 2 second delay when sending the 'k' (kill) packet that happened due to a race condition.
llvm-svn: 182025
|
|
|
|
| |
llvm-svn: 181948
|
|
|
|
|
|
|
| |
Most important was a new[] + delete mismatch in ScanFormatDescriptor()
and a couple of possible memory leaks in FileSpec::EnumerateDirectory().
llvm-svn: 181080
|
|
|
|
|
|
| |
the macros and just use C++11.
llvm-svn: 179805
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
re-fetch the value.
llvm-svn: 178962
|
|
|
|
|
|
| |
succeeds, too.
llvm-svn: 178955
|
|
|
|
|
|
| |
failure.
llvm-svn: 178954
|
|
|
|
|
|
|
|
|
|
|
| |
if we have an updated task_info call available; else fall back to getting
the default host-wide page size.
Update all uses of the vm page size to get it via MachVMMemory::PageSize().
<rdar://problem/13477763>, <rdar://problem/13498504>
llvm-svn: 178953
|
|
|
|
|
|
| |
LLDB now can use a single dash for all long options for all commands form the command line and from the command interpreter. This involved just switching all calls from getopt_long() to getopt_long_only().
llvm-svn: 178789
|
|
|
|
|
|
| |
Try and reap process when sending the "k" packet to avoid a race condition. We now wait for at most 1 second to reap the child process that we are killing.
llvm-svn: 178726
|
|
|
|
|
|
| |
Fixed an attach case for ARM that was imporperly detecting an application bundle when there wasn't one.
llvm-svn: 178704
|
|
|
|
|
|
| |
call DNBProcessGetCPUType() to get the cputype of the process we're debugging.
llvm-svn: 178620
|
|
|
|
|
|
|
|
|
| |
number in RNBRemote::HandlePacket_qProcessInfo -- add a new
GetCurrentThreadMachPort() so callers who need to make a mach
thred_get_state() call at the RNBRemote level will have a way to
get the port number.
llvm-svn: 178619
|
|
|
|
| |
llvm-svn: 178512
|
|
|
|
|
|
|
|
| |
- the ".app" would be treated as the app bundle final characters
and the SpringBoard launch would fail.
<rdar://problem/13258935>
llvm-svn: 178209
|
|
|
|
|
|
| |
used.
llvm-svn: 178035
|
|
|
|
|
|
| |
Don't hard code vm page size in profiling code
llvm-svn: 177907
|