bazel_cache_reader
is used for helping lldb
find dSYMs for builds done with Tulsi. dSYM locations are stored by Tulsi in a sqlite3 database located at ~/Library/Application Support/Tulsi/Scripts/symbol_cache.db
. lldb
is set up to find the dSYMs using ~/.lldbinit
as specified here.
Easy debugging of bazel_cache_reader
can be done using Console.app
, turning on “debug and info” messages, and filtering for bazel_cache_reader
.
Historically, this tool exists to act as a fallback when Spotlight cannot find the dSYM bundle generated by a build. This tool has been written in C to avoid overhead witnessed when referencing a script via DBGShellCommands
. For even a small iOS build, lldb
will perform hundreds of debug symbol lookups through the scripts referenced by DBGShellCommands
and Spotlight when it starts a debug session. lldb
tries to match debug symbols for every target to debug, including custom dynamic frameworks and system frameworks. This latency can cause the debug session to time out before it is able to start, as witnessed during initial prototyping as a Python script.