Используя следующий скрипт DTrace, я могу получить результат, близкий к тому, что мне нужно:
$ cat script.d
objc$target:::entry {}
objc$target:::return {}
$ sudo dtrace -F -s script.d -c /Applications/TextEdit.app/Contents/MacOS/TextEdit
dtrace: script 'script.d' matched 105896 probes
CPU FUNCTION
0 -> +load
0 <- +load
0 -> +load
0 <- +load
0 -> +load
0 <- +load
0 -> +load
0 <- +load
0 -> +initialize
0 <- +initialize
0 -> +alloc
0 -> +allocWithZone:
0 -> +self
0 <- +self
0 -> +initialize
0 <- +initialize
0 -> +initialize
0 <- +initialize
0 -> +initialize
0 <- +initialize
0 -> +__new:::
0 <- +__new:::
0 -> +immutablePlaceholder
0 <- +immutablePlaceholder
0 <- +allocWithZone:
0 -> -initWithObjects:count:
0 -> +__new:::
0 <- +__new:::
0 -> +initialize
0 <- +initialize
0 -> +new
0 -> +alloc
...
Я хотел бы, чтобы вывод включал вызываемый класс, поэтому он хотел бы что-то вроде этого:
dtrace: script 'script.d' matched 105896 probes
CPU FUNCTION
0 -> +[classX load]
0 <- +[classX load]
...
где classX
- правильный класс.
Вывод по-прежнему должен иметь отступ и включать только сообщения Objective-C, а не вызовы функций C.
forwardMethod()
? - person Tyilo   schedule 26.04.2013objc$target:*NSDate*::entry {} objc$target:*NSDate*::return {}
- person Tyilo   schedule 26.04.2013