tree: 2c24570dfc48b5beee7181d6ee6fbced7c284b8f [path history] [tgz]
  1. bazel_cache_reader/
  2. bazel_cache_reader.xcodeproj/
  3. bazel_cache_reader_speed_test.sh
  4. BUILD
  5. README.md
src/tools/bazel_cache_reader/README.md

bazel_cache_reader

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.