2015-07-21 2 views
0

Я хочу создать точку останова в xCode, которая использует LLDB и проверяет текущий класс объекта в разделе состояния.Получить указатель на себя в LLDB?

Проблема LLDB не позволяет использовать self, чтобы получить класс. Как решить эту проблему? Может быть, с помощью других команд? Например, вывод команды bt содержит правильное имя класса, но, похоже, он не разрешен также в LLDB.

ответ

1

Я полагаю, это связано с: (., Как и в системных библиотеках)

Using of symbolic breakpoints for child classes in Xcode?

Проблема возникает, если ваша точка останова в коде, без отладочной информации отладчик ничего не знает о себе в этом контексте, и вы должны дать ему больше помощи. В случае self вы знаете, что он был передан в вызов метода в качестве первого аргумента, поэтому вы можете использовать $arg1, чтобы получить значение.

+0

Обратите внимание, что этот трюк работает только в самом начале функции. После этого регистр передачи аргументов почти наверняка был повторно использован. –

+0

и '$ arg1' недоступны для 32-разрядного кода x86, наиболее часто используемого при работе в 32-разрядном симуляторе iOS на Mac. –

Смежные вопросы