0

仮想Linuxで、OSプロセスをプロファイリングするためのSystemtapツールを動作/セットアップしようとしています。VirtualBox を使用してイメージを実行しています。経由

rpm -q kernel

cat /proc/version

取得したバージョンは次のとおりです。

Linux version 2.6.32-5-686 (Debian 2.6.32-48squeeze4)

ツールを正しくダウンロードしてインストールし、簡単なプログラム (.stp) を作成しました。ただし、同じエラーが発生し続けます。これは、多くの場所で情報を検索しても成功しませんでした:

実行後:

sudo stap my_profiler.stp

私は得る:

semantic error: libdwfl failure (all kernel modules found): no error
Pass 3: translation failed. Try again with another '--vp 001' option.

https://sourceware.org/systemtap/SystemTap_Beginners_Guide/errors.htmlによると

⁠セマンティック エラー: libdwfl の失敗 デバッグ情報の処理中に問題が発生しました。ほとんどの場合、このエラーは、プローブされたカーネルとバージョンが正確に一致しない kernel-debuginfo パッケージのインストールが原因で発生します。インストールされた kernel-debuginfo パッケージ自体に、一貫性または正確性の問題がある可能性があります。

「kernel-debuginfo」パッケージに関する関連情報は見つかりませんでした。また、冗長オプションを試してみましたが、メリットはありませんでした。VM の古いスナップショットを試してみました。何か案は?

私が実行した .stp プログラムのコード:

probe timer.profile{
    printf("Process: %s\n", execname())
    printf("Process ID: %d\n", pid())
}
4

1 に答える 1

0

問題を発見!!!! 間違ったバージョンの Linux カーネルを使用していたようです。質問に書いたバージョンで提供されるデフォルトのカーネルを使用していました。そのバージョン (2.6.32-5-686 のもの) はデバッグ情報に問題があるようで、別のバージョン (gcc バージョン 4.7.2 の Linux バージョン 3.9.6 Debian 4.7. 2-5) 問題なく動作しました:)

于 2015-08-07T02:11:52.003 に答える