По какой-то причине LLDB не показывает мне содержимое переменных, пока я перехожу через мой код Swift. Фактическое выполнение работает нормально, но независимо от того, что я пытаюсь, я не вижу содержимое своих строк!
Вот что я вижу в списке переменных:
В этот момент type
содержит "имя", а value
содержит "Logan". Но вы не сможете сказать, что смотрите сюда. Если я использую кнопку "быстрый просмотр", он говорит, что значение "(Нет)".
И я получаю эту тарабарщину, когда пытаюсь po
String из консоли:
(lldb) po space
error: <REPL>:1:1: error: non-nominal type '$__lldb_context' cannot be extended
extension $__lldb_context {
^
<REPL>:11:5: error: 'Space.Type' does not have a member named '$__lldb_wrapped_expr_0'
$__lldb_injected_self.$__lldb_wrapped_expr_0(
^
Однако это меняется. Иногда я получаю что-то вроде:
class name = __NSAtom
или
Printing description of [0]:
(String) [0] = {
core = {
_baseAddress = Builtin.RawPointer = 0x00000001004016f0
_countAndFlags = -4611686018427387894
_owner = Some {
Some = (instance_type = Builtin.RawPointer = 0x0000000100401820 -> 0x00007fff7b3d5390 (void *)0x00007fff7b3d5340: __NSCFString)
}
}
}
или
Printing description of declaration:
(String) declaration = <DW_OP_piece for offset 8: top of stack is not a piece>
... но никогда не будет фактического содержимого строки!
Update:
Я заметил, что проблема только начинает возникать, как только вызов функции componentsSeparatedByString()
выполняется в этой функции. (Это происходит прямо вверху, так как я ступил, я не заметил, что отладчик действительно показывает значение до этой точки.) Так что что-то странное происходит с этой функцией. Я обновил заголовок вопроса, чтобы отразить эту новую информацию.
Интересно, что, как только строка была "повреждена" этим вызовом, вы не можете ее просматривать нигде, даже если она передана другой функции. И любые обычные строковые переменные также не доступны для просмотра. Определенно ошибка, но мне интересно, есть ли обходной путь. Мне очень тяжело отлаживать мою программу!