Компиляция erlang с помощью systemtap, но требует dtrace

Я компилирую erlang otp из исходного кода следующим образом:

./configure --with-dynamic-trace=systemtap

Но он сообщает об ошибке:

checking for dtrace... no
configure: error: No dtrace utility found.

Я думаю, что systemtap предназначен для использования в Linux и отличается от dtrace, я прав?


После установки dtrace теперь ошибка:

dtrace: failed to compile script emulator/beam/erlang_dtrace.d: Preprocessor not found
configure: error: Could not precompile erlang_dtrace.d: dtrace -h failed
configure: error: /root/otp/erts/configure failed for erts

person Yejun Su    schedule 14.09.2012    source источник


Ответы (2)


Какой дистрибутив вы используете? Я бы забыл использовать DTRACE, заставить его работать будет немного сложнее, чем Systemtap (по крайней мере, для меня). Я использую Systemtap, и он отлично работает.

Если вы не используете Fedora/RH, вам следует пропатчить ядро ​​с помощью UTRACE или использовать ядро ​​>= 3.5 с включенным UPBOBES.

Чтобы проверить, включено ли в вашем ядре UTRACE/UPROBE, выполните следующее:

grep UTRACE /boot/config-$(uname -r)

or

grep PROBES /boot/config-$(uname -r)

Например, на моей машине (Ubuntu 12.04 с ядром Mainline 3.5):

$ grep UTRACE /boot/config-$(uname -r)
$
$ grep UPROBES /boot/config-$(uname -r)
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_UPROBES=y

У вас также должен быть установлен systemtap. Версия, поставляемая с Ubuntu (мой случай), довольно старая, поэтому я скомпилировал ее из исходного кода (традиционная конфигурация/сделать/сделать установить). Вы можете получить его здесь:

http://sourceware.org/systemtap/ftp/releases/

Я использую версию 1.8.

Затем попробуйте перекомпилировать его снова. Он должен работать.

С Уважением

person Francesquini    schedule 21.09.2012
comment
Спасибо, я тоже предпочитаю systemtap. Мой дистрибутив Fedora17. rep UTRACE /boot/config-$(uname -r) получить CONFIG_UTRACE=y. Системтап 1.8. Очень странно, что для этого требуется dtrace, в то время как я выбрал systemtap в качестве инструмента трассировки при настройке erlang. - person Yejun Su; 22.09.2012
comment
Теперь все в порядке. Я установил systemtap из исходников, и все в порядке. Спасибо. - person Yejun Su; 22.09.2012

  • После установки systemtap (sudo apt-get install systemtap) может помочь выход или выход из текущего сеанса оболочки, а затем вход в систему.

  • Кроме того, вы можете попробовать использовать kerl.

person Miloud Eloumri    schedule 29.04.2020