Как я автоматически устанавливаю точки останова на всех методах в XCode? Я хочу знать, как работает моя программа и какие методы вызывают, когда я взаимодействую с пользовательским интерфейсом.
Как автоматически установить точки останова на всех методах в XCode?
Ответ 1
- Запустите приложение в Xcode.
- Нажмите ⌘^Y (Отладка → Пауза).
- Перейдите в консоль отладчика: ⌘⇧C
- Введите
breakpoint set -r . -s <PRODUCT_NAME>
(введите имя приложения).
lldb ответит чем-то вроде...
Breakpoint 1: 4345 locations
Теперь просто нажмите кнопку "Продолжить".
breakpoint set
- команда lldb для создания контрольных точек. Место указывается с использованием регулярного выражения (-r
) для имен функций/методов, в данном случае .
, которое соответствует любому методу. Параметр -s
используется для ограничения объема вашего исполняемого файла (необходимо исключить рамки).
Когда вы запустите приложение, lldb теперь будет прерываться всякий раз, когда приложение попадает в функцию из вашего основного исполняемого файла.
Чтобы отключить тип точек останова breakpoint delete 1
(введите правильный номер точки останова).
Ответ 2
В некоторых случаях удобнее устанавливать точки останова только на некоторые из методов.
Используя LLDB, мы можем, например, поставить точку останова на все методы ViewDidLoad по имени.
(lldb) breakpoint set -n ViewDidLoad
Здесь "-n" означает по имени.
Кроме того, мы можем поставить точки останова по имени селектора:
(lldb) breakpoint set -S alignLeftEdges:
Здесь "-S" означает селектор.
Ответ 3
Существует много возможностей, но невозможно установить точки останова только для ваших функций. Вы можете попробовать:
breakpoint set -r '\[ClassName .*\]$'
добавить точки останова ко всем методам в классе
breakpoint set -f file.m -p ' *- *\('
добавить точки останова ко всем методам в файле
Вы также можете использовать его со многими файлами:
breakpoint set -f file1.m -f file2.m -p ' *- *\('
Ярлык:
br se -f file1.m -f file2.m -p ' *- *\('
Вы можете добавить точки останова ко всем методам во всех классах с некоторым префиксом (и это могут быть только мои классы)
br se -r . -s Prefix
Эта строка (ответ wzbozon):
breakpoint set -n viewDidLoad
будет устанавливать точки останова для всех методов viewDidLoad
во всех классах.
Я попытался, но не смог установить точки останова только по своим собственным методам.