Есть ли способ отследить / отследить и записать все методы по имени класса и метода во время сеанса отладки? - PullRequest
9 голосов
/ 31 июля 2011

Я не заинтересован в входе в фреймворки или под покровы, а только в коде моего исходного уровня при входе и выходе из каждого метода.Я хотел бы предоставить имя класса и имя метода и записать его в файл или, по крайней мере, вывести его на экран.

Мой запрос, если это возможно с существующими средствами Xcode / Debugger / Instruments, можетЯ внедряю его простым способом, отличным от оператора NSLog при каждом входе и выходе из метода, или есть коммерческий инструмент, который предоставляет такую ​​возможность?

Я говорю об исходных методах здесь ... не о процессах выполнения или потоках.Спасибо.

Ответы [ 2 ]

9 голосов
/ 31 июля 2011

Дейв Дрибин рассказывает именно об этом в своей статье Отслеживание сообщений Objective-C .

Возможно, вам нужна следующая часть:

Если вы установитеесли переменная окружения NSObjCMessageLoggingEnabled равна YES, среда выполнения Objective C будет записывать все отправленные сообщения Objective C в файл с именем /tmp/msgSends-.

2 голосов
/ 16 июля 2014

Xtrace (https://github.com/johnno1962/Xtrace) имеет много функций и хорошо работает для трассировки Objective-C. Нужен исходный доступ к их проекту, как вы, похоже, имеете, и может отправлять сообщения при входе / выходе, как вы, кажется, хочу.

  • Конфигурация времени отладки - может жестко программировать или настраивать трассировку во время отладки
  • Простая интеграция - один .mm и один .h
  • Соответствие NSRegularExpression - классы, методы, типы
...