Как выполнить зондирование пользовательского пространства с помощью отладочной информации в systemtap

Я новичок в systemtap и хотел бы понять, как динамически подключать инструменты к производственному приложению, используя отладочную информацию в приложении.

Для целевого приложения (например, веб-сервера Apache). Я хотел бы найти количество времени, затрачиваемое на выполнение данной функции. то есть я хотел бы найти время, потраченное от начала до конца функции, используя символическую информацию функции. Как я могу сделать это с помощью systemtap- Можете ли вы дать инструкции по:

  1. Сценарий tapset для исследования пользовательского пространства с использованием отладочной информации.
  2. Как выполнить этот сценарий тапсета с целевым приложением.

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

Вот ссылка на «Информацию на основе отладочной информации» — https://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToApps


person tsar2512    schedule 18.04.2016    source источник


Ответы (1)


Перечислите функции:

stap -L 'process("/usr/sbin/httpd").function("*").call'

Базовый подсчет частоты вызовов функций:

stap /usr/share/doc/systemtap*/examples/*/eventcount.stp \
    'process("/usr/sbin/httpd").function("*").call'

Время функции:

stap -e 'probe process("/usr/sbin/httpd").function("ap_getword_conf").return {
    printf("%s %d\n", ppfunc(), gettimeofday_us()-@entry(gettimeofday_us()))
}'
person fche    schedule 12.05.2016