2012-02-14 2 views
34

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

ответ

52
  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 (введите правильный номер точки останова).

+0

Спасибо за подробное объяснение. Я попытался показать список точек останова, и это сработало, но как установить точки останова для всех методов с lldb? –

+1

В приведенном выше описании три пункта: Если ваше приложение называется «MyFooApp», введите 'breakpoint set -r. -s MyFooApp' в консоли отладчика. –

+0

Спасибо, что это работа (это была моя ошибка - я ошибся при вводе названия проекта :) извините). Большое вам спасибо, это отлично! –

12

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

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

(lldb) breakpoint set -n ViewDidLoad 

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

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

(lldb) breakpoint set -S alignLeftEdges: 

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

0

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

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 во всех классах.

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

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