llvm-project/lldb/tools
Jason Molenda 20ee21bde6 Add a another packet to the gdb-remote protocol,
jGetLoadedDynamicLibrariesInfos.  This packet is similar to
qXfer:libraries:read except that lldb supplies the number of solibs
that should be reported about, and the start address for the list
of them.  At the initial process launch we'll read the full list
of solibs linked by the process -- at this point we could be using
qXfer:libraries:read -- but on subsequence solib-loaded notifications,
we'll be fetching a smaller number of solibs, often only one or two.

A typical Mac/iOS GUI app may have a couple hundred different 
solibs loaded  - doing all of the loads via memory reads takes 
a couple of megabytes of traffic between lldb and debugserver.
Having debugserver summarize the load addresses of all the solibs
and sending it in JSON requires a couple of hundred kilobytes
of traffic.  It's a significant performance improvement when 
communicating over a slower channel.

This patch leaves all of the logic for loading the libraries
in DynamicLoaderMacOSXDYLD -- it only call over ot ProcesGDBRemote
to get the JSON result.

If the jGetLoadedDynamicLibrariesInfos packet is not implemented,
the normal technique of using memory read packets to get all of
the details from the target will be used.

<rdar://problem/21007465>

llvm-svn: 241964
2015-07-10 23:15:22 +00:00
..
argdumper Don't export a ton of lldb_private symbols from argdumper. 2015-04-01 17:38:08 +00:00
compact-unwind Fix a variety of typos. 2015-06-18 05:27:05 +00:00
darwin-debug Fix darwin-debug installation in cmake (OS X) 2015-02-06 18:13:10 +00:00
darwin-threads Fix examine-threads to build for arm64. 2014-11-14 22:58:25 +00:00
debugserver Add a another packet to the gdb-remote protocol, 2015-07-10 23:15:22 +00:00
driver Make command files specified to the driver actually print their 2015-07-08 00:59:59 +00:00
install-headers Fixed our install-headers script to set version 2014-07-17 17:26:38 +00:00
lldb-mi [lldb-mi] Remove unused typedefs. 2015-07-09 08:45:26 +00:00
lldb-perf Cleanup how we listen for process events by using the broadcaster class name instead of having to catch each process instance as it comes alive. 2014-08-18 21:09:50 +00:00
lldb-server Add --port-file flag to lldb-platform to store port number which platform is listening. 2015-07-06 18:05:19 +00:00
CMakeLists.txt Merge lldb-platform and lldb-gdbserver into a single binary 2015-02-18 15:39:41 +00:00
Makefile Merge lldb-platform and lldb-gdbserver into a single binary 2015-02-18 15:39:41 +00:00