Почему LLDB показывает объект, но спотыкается о его свойство
На брейкпоинте p myObj работает, а p myObj.myComputedProperty требует больше времени или упирается в импорт модуля. Эти команды проходят разными путями: значение переменной можно прочитать по отладочной информации и reflection metadata, вычисляемое свойство требует выполнения кода.
В разборе команды Swift объясняется, зачем встроенному в LLDB компилятору нужен точный модуль. Одного имени недостаточно: у модуля могут быть разные варианты для платформ или разные наборы деклараций.
Изменения в Swift 6.3–6.4 позволяют хранить точные пути к явно собранным модулям и их зависимостям. Xcode и SwiftPM передают нужные данные автоматически. Собственным системам сборки, которые напрямую вызывают Swift frontend, может понадобиться настройка debug-module-path.
Post #4819
633

- 👍 1
- 🔥 1