Skip to content

Conversation

@augusto2112
Copy link

LLDB has moved to largely using Swift reflection metadata to resolving type information of variables. Currently, LLDB reads all reflection metadata from the process over many memory reads. This change allows LLDB to read almost all reflection metadata it needs from files instead of from the process. This change should significantly speed up the time LLDB takes populate Xcode’s variable view, especially when debugging an app running on a real device.

augusto2112 and others added 8 commits February 4, 2022 15:47
Differential Revision: https://reviews.llvm.org/D118265

(cherry picked from commit b414954)
(cherry picked from commit ecd3b66)
Now that reading C strings go through the file-cache by default, make
sure that any calls that come from LLDBMemoryReader force live memory
when we can't read from the file-cache. This is the case when:
- The LLDB setting marks it as disabled.
- The target is 32 bits (this may be subject to change).
- The address we're reading from is not one of the fake addresses we
  resolved in LLDBMemoryReader.

(cherry picked from commit 03a0435)
If we read a real process address, try to map that back as a tagged
LLDBMLLDBMemoryReader address, so further reads originating from it
benefit from the file-cache optimization.

(cherry picked from commit 3d63cec)
…e optimization is enabled

(cherry picked from commit b631e67)
@augusto2112
Copy link
Author

@swift-ci test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants