Доклад о том, как можно использовать утилиту dtrace для отладки iOS приложений. Эта утилита может быть полезна при отладке сложных случаев, когда необходимо задать какие-либо правила для фильтрации вызываемых функций.
6. Скрипт
CPU ID
0 155
0 155
1 155
1 155
FUNCTION:NAME
read:entry bash with pid 2958 called write
read:entry bash with pid 444 called write
read:entry bash with pid 448 called write
read:entry bash with pid 448 called write
7. Точки трассировки
syscall, pid, objc
read, write, +alloc
provider:module:function:name
libc++.1.dylib, mach_kernel
имя зонда (probe)
24. Что можно делать
•
Анализ приложений и драйверов с применением
сложных фильтров
•
Профилирование памяти для конкретных
объектов
•
Профилирование производительности
29. “Фишки” D
•
автоматическое объявление переменных
•
все массивы – ассоциативные
•
•
proc[execname, tid]++
аггрегации
•
@counts["write system calls"] = count();
30. Стандартные скрипты
•
dtruss – эмуляция truss
•
iosnoop, iotop – анализ работы с диском
•
execsnoop – запуск новых процессов
•
man -k dtrace – полный список