Модест Матвеевич, это не диван!
Это транслятор универсальных превращений!
Аркадий и Борис Стругацкие,
«Понедельник начинается в субботу»
Евгений Ильин, Филипп Торчинский
Нежданно-негаданно в контексте разговора о DTrace всплыла тема Digital Rights
Management (DRM). В остальном продолжаем разговор о теории и практике DTrace.
В теории вас ждет рассказ о спекулятивной трассировке, которая пригодится
для анализа причин возникновения спорадических ошибок. Практика посвящена
применению провайдеров для Java, PHP и баз данных.
В продолжение цикла статей планировался обещанный ещё в первaой части (см.
№12 за 2007 г.) рассказ о том, как оснастить исходный код приложения датчиками DTrace.
То есть продолжить разговор о различных типах провайдеров DTrace на примере sdt
(statically defined tracing) и других провайдеров на базе sdt, например, hotspot
и hotspot_jni.
Однако в процессе сбора материалов для очередной
статьи я заглянул на блог одного из авторов и ведущих разработчиков DTrace,
Адама Левенталя (Adam Leventhal, http://blogs.sun.com/ahl).
Во второй половине января он опубликовал заметку о некоторых особенностях
реализации DTrace в Mac OS X – «Mac OS X and the missing probes», которая
получила очень большое количество откликов, потому что затронула тему,
актуальную как для DTrace, так и для Open Source-сообщества. Pекомендую
заглянуть в блог Адама всем тем, кого интересует DTrace в принципе. А тем, кто
использует DTrace на Mac OS X, стоит прочесть упомянутую статью просто
непременно, если только вы этого уже не сделали.
В начале статьи я вкратце перескажу историю,
поведанную Адамом. По этому поводу разговор о sdt отложим до лучших времён, а
«теоретическая» часть статьи будет состоять из рассказа
о методе вылавливания спорадических ошибок средствами, которые DTrace
предоставляет в качестве помощи в этом непростом занятии. Практическая часть
расскажет о том, как использовать DTrace для
анализа приложений на Java, PHP и SQL.