Как автоматически установить точки останова на всех методах в XCode? - PullRequest
37 голосов
/ 14 февраля 2012

Как я автоматически устанавливаю точки останова на всех методах в XCode? Я хочу знать, как работает моя программа и какие методы вызываются при взаимодействии с пользовательским интерфейсом.

Ответы [ 3 ]

56 голосов
/ 14 февраля 2012
  1. Запустите ваше приложение в Xcode.
  2. Нажмите ⌘⌃Y (Отладка -> Пауза).
  3. Перейти к консоли отладчика: ⌘⇧C
  4. Введите breakpoint set -r . -s <PRODUCT_NAME> (введите название вашего приложения).

lldb ответит что-то вроде ...

Breakpoint 1: 4345 locations

Теперь просто нажмите кнопку Продолжить.

breakpoint set - это команда lldb для создания точек останова. Местоположение указывается с помощью регулярного выражения (-r) в именах функций / методов, в данном случае ., которое соответствует любому методу. Параметр -s используется для ограничения области действия исполняемым файлом (необходим для исключения платформ).

Когда вы запускаете ваше приложение, lldb теперь прерывается всякий раз, когда приложение выполняет функцию из вашего основного исполняемого файла.

Чтобы отключить точки останова, введите breakpoint delete 1 (введите правильный номер точки останова).

13 голосов
/ 23 июля 2012

В некоторых случаях удобнее устанавливать точки останова только для некоторых методов.

Используя LLDB, мы можем поставить точку останова для всех методов ViewDidLoad, например, по имени.

(lldb) breakpoint set -n ViewDidLoad

Здесь «-n» означает по имени.

Также мы можем поставить точки останова по имени селектора:

(lldb) breakpoint set -S alignLeftEdges:

Здесь "-S" означает селектор.

7 голосов
/ 10 октября 2017

Существует много возможностей, но нет возможности установить точки останова только для ваших функций.Вы можете попробовать:

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 answer):

breakpoint set -n viewDidLoad

установит точки останова для всех методов viewDidLoad во всех классах.

Я пытался, но не мог установить точки останова только для наших собственных методов.

...