llvm-project/lldb/source
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
..
API Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so. 2015-07-08 22:32:23 +00:00
Breakpoint Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so. 2015-07-08 22:32:23 +00:00
Commands Add new bugreport command to lldb 2015-07-02 10:03:37 +00:00
Core Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so. 2015-07-08 22:32:23 +00:00
DataFormatters Add a summary for vector types 2015-07-07 00:20:57 +00:00
Expression Fixed a problem where variables in modules were not appropriately discovered by 2015-07-10 17:34:23 +00:00
Host Avoid going through Platform when creating a NativeProcessProtocol instance 2015-07-09 11:51:11 +00:00
Initialization Move WindowsDYLD to the Plugins/DynamicLoader directory. 2015-07-08 18:07:13 +00:00
Interpreter Add new bugreport command to lldb 2015-07-02 10:03:37 +00:00
Plugins Add a another packet to the gdb-remote protocol, 2015-07-10 23:15:22 +00:00
Symbol Fix TestStopHookMultipleThreads and TestNamespace after r241751 2015-07-09 10:57:54 +00:00
Target Don't try to make a pseudo terminal if we are launching in a separate terminal, it causes a deadlock when debugging because we create a PTY and yet it isn't hooked up to anything on the slave side. 2015-07-10 18:04:46 +00:00
Utility Fix cmake build after recent JSON changes 2015-07-07 10:08:41 +00:00
CMakeLists.txt Move LLDB initialization/shutdown to Initialization. 2015-03-19 22:00:21 +00:00
Makefile Move LLDB initialization/shutdown to Initialization. 2015-03-19 22:00:21 +00:00
lldb.cpp Move LLDB initialization/shutdown to Initialization. 2015-03-19 22:00:21 +00:00