llvm-project/lldb/source
Jason Molenda 07580ffe47 The on-ios-device command line lldb has an optimization where
when it and the inferior process both have the same shared cache
(a conglomeration of all libraries at the same fixed address for
all processes), lldb will read data out of its own memory to speed
things up.  The shared cache has a UUID, so lldb currently checks
that the UUID of its own shared cache matches that of the inferior.

This change adds one refinement to that -- it checks that the UUID
is the same and that the base address of the shared cache is the
same.  And only uses its local shared cache if they are both identical.

This involved using a different style of SPI with dyld to get lldb's
shared cache load address, but it's not especially difficult.

One unattractive part of the change is that I'm using the real
underlying types of task_t and kern_return_t instead of picking
them up from mach/mach.h.  The defines that get picked up there (a
lot from machine.h but others too) conflict with llvm/Support/MachO.h
even when I have mach.h included before our SafeMachO.h which
undefines most of the defines before including llvm/Support/MachO.h.
I'll need to augment the #undefs in SafeMachO.h to get this to
compile cleanly, but that'll be another day.

<rdar://problem/39868238> 

llvm-svn: 331497
2018-05-04 00:59:37 +00:00
..
API Reflow paragraphs in comments. 2018-04-30 16:49:04 +00:00
Breakpoint Reflow paragraphs in comments. 2018-04-30 16:49:04 +00:00
Commands Use the UUID from the minidump's CodeView Record for placeholder modules 2018-05-02 20:06:17 +00:00
Core DWARFExpression: Convert file addresses to load addresses early on. 2018-05-03 23:32:47 +00:00
DataFormatters Reflow paragraphs in comments. 2018-04-30 16:49:04 +00:00
Expression DWARFExpression: Convert file addresses to load addresses early on. 2018-05-03 23:32:47 +00:00
Host Remove the timed_out out-argument from Predicate::WaitForValueEqualTo 2018-05-03 15:33:41 +00:00
Initialization Don't use llvm::EnablePrettyStackTrace on macOS. 2017-12-02 00:11:18 +00:00
Interpreter Fix the .experimental. settings feature so that we don't return an error 2018-05-01 22:49:01 +00:00
Plugins The on-ios-device command line lldb has an optimization where 2018-05-04 00:59:37 +00:00
Symbol Enable AUTOBRIEF in doxygen configuration. 2018-05-02 16:55:16 +00:00
Target Remove the timed_out out-argument from Predicate::WaitForValueEqualTo 2018-05-03 15:33:41 +00:00
Utility Enable AUTOBRIEF in doxygen configuration. 2018-05-02 16:55:16 +00:00
CMakeLists.txt Remove Plugins/Process/POSIX from include_directories 2017-04-11 12:26:25 +00:00
lldb.cpp Run clang-format on lldb.cpp 2017-11-02 16:56:52 +00:00