-
Notifications
You must be signed in to change notification settings - Fork 2
Systemtap
Марлен Бергалиев edited this page Dec 22, 2020
·
2 revisions
Systemtap использует программы, написанные на их собственном скриптовом языке. Код на скриптовом C-подобном языке транслируется в код языке C, а затем компилируется в модуль ядра. С помощью специальной утилиты данный модуль загружается в ядро и осуществляет работу по отслеживанию событий. Данная утилита выводит все данные, выдаваемые модулем, в стандартный поток вывода или в файл.
sudo apt install libelf-dev libdw-dev
cd /tmp && wget https://sourceware.org/systemtap/ftp/releases/systemtap-4.4.tar.gz
tar -xf systemtap-4.4.tar.gz && cd systemtap-4.4
./configure
make && sudo make install
Без них не все функции для профилирования буду доступны, потому требуется их установить:
printf "deb http://ddebs.ubuntu.com %s main restricted universe multiverse\n" $(lsb_release -cs){,-updates,-security,-proposed} | \
sudo tee -a /etc/apt/sources.list.d/ddebs.list
wget -O - http://ddebs.ubuntu.com/dbgsym-release-key.asc | sudo apt-key add -
sudo apt update
sudo apt install linux-image-$(uname -r)-dbgsym
Если для Вашего ядра нет debug symbols, то нужно пересобрать ядро со следующими флагами (если таковы имеются):
CONFIG_KPROBES=y
CONFIG_KPROBES_SANITY_TEST=n
CONFIG_KPROBE_EVENT=y
CONFIG_NET_DCCPPROBE=m
CONFIG_NET_SCTPPROBE=m
CONFIG_NET_TCPPROBE=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_REDUCED=n
CONFIG_X86_DECODER_SELFTEST=n
CONFIG_DEBUG_INFO_VTA=y
Официальный сайт - https://sourceware.org/systemtap/index.html