1

私は次のようにソースからerlangotpをコンパイルしています:

./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
4

2 に答える 2

2

どのディストリビューションを使用していますか? DTRACE の使用を忘れてしまいます。Systemtap よりも機能させるのが少し難しくなります (少なくとも私にとってはそうでした)。私は Systemtap を使用していますが、完璧に動作します。

Fedora/RH を使用していない場合は、UTRACE を使用してカーネルにパッチを適用するか、UPBOBES を有効にして 3.5 以上のカーネルを使用する必要があります。

カーネルで UTRACE/UPROBE が有効になっているかどうかを確認するには、次を実行します。

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

また

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

たとえば、私のマシン (メインライン カーネル 3.5 を搭載した Ubuntu 12.04) では:

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

systemtap もインストールする必要があります。Ubuntu に同梱されているバージョン (私の場合) はかなり古いので、ソースからコンパイルしました (従来の configure/make/make install)。ここで入手できます:

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

バージョン1.8を使用しています。

その後、再度コンパイルしてみてください。それはうまくいくはずです。

よろしく

于 2012-09-21T16:10:41.023 に答える