Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
SystemTapのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
SystemTap
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:カーネル]] [[en:SystemTap]] [[zh-hans:SystemTap]] [http://sourceware.org/systemtap/ SystemTap] は動作中の Linux システムについての情報収集を簡略化するためのフリーソフトウェア (GPL) インフラストラクチャを提供します。 ==SystemTap== {{Pkg|systemtap}} パッケージを[[インストール]]してください。上流での最新のリリースと比較してみてください [https://sourceware.org/systemtap/wiki/SystemTapReleases]。また [https://sourceware.org/git/?p=systemtap.git;a=summary] にあるソースからビルドすることも検討してください。新しいカーネルやディストロのサポートは最初にここに現れます。 ==標準的なカーネル== すくなくとも {{Pkg|linux-headers}} がインストールされている必要があります。 Arch は配布バイナリ(カーネルを含む)からデバッグ情報を取り除いている(strip している)ので、systemtap の機能の多くは利用できません。なので ''/usr/share/doc/systemtap/examples'' にある例の多くは動作しません。しかし [https://sourceware.org/systemtap/man/stapprobes.3stap.html stapprobes man page] で動作する NON-DWARF および AUTO-DWARF のプローブタイプを見ることができます。例えば: * カーネルトレースポイント: kernel.trace("*") * ユーザースペースプローブ: process("...").function("...") (-g をつけて自分でビルドしたプログラムに限る) * ユーザースペースマーカー: process("...").mark("...") (''<sys/sdt.h>'' のマーカーをつけて configure されていれば) * perfctrベースのプローブ: perf.* * NON-DWARF カーネルプローブ: kprobe.function("...") と nd_syscall.* tapset (/boot/System.map* ファイルがあれば。下記参照) ==カーネルのリビルド== SystemTap を実行するために ''linux-custom'' パッケージをビルドすることを考えているかもしれません。しかしオリジナルの {{Pkg|linux}} パッケージをリビルドすることは簡単で効率的です。[[カーネル/コンパイル/伝統的な方法]]も参照してください。 ===準備=== 最初に {{ic|<nowiki>cd ~/ && mkdir build && cd build/ && ASPROOT=. asp checkout linux && cd linux/</nowiki>}} を実行してオリジナルのカーネルビルドファイルを取得します。そして {{ic|makepkg --verifysource}} を実行して追加のファイルを取得します。この検証をしておけば「チェックサムの更新」のステップを飛ばしても安全です。 ===config の修正=== '''config''' (32-bit システム向け) または '''config.x86_64''' (64-bit システム向け) を編集して以下のオプションを有効にします: * 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'' と ''CONFIG_DEBUG_INFO_REDUCED'' だけが設定されていません。 現在の core/linux (3.15.2 でテスト済み) では、以下の行を config.[x86_64] に追加するだけです: {{hc|x86_64|<nowiki> echo ' CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_REDUCED=n ' >> config.x86_64 </nowiki>}} ''これらの行を自己メンテナンスされているスクリプトに追加するときは CONFIG_* の行の前にスペースを入れないでください。.'' ===チェックサムを更新する=== ''ソースファイルが正しいと確信できるときはこのステップを飛ばしても安全です''。 {{ic|sha256sum config[.x86_64]}} を実行して新しい sha256sum を計算します。 '''PKGBUILD''' ファイル中で {{ic|<nowiki>sha256sum=('sum-of-first' ... 'sum-of-last')</nowiki>}} は {{ic|<nowiki>source=('first-source' ... 'last-source')</nowiki>}} と同じ順序で並んでいます。新しい sha256sum を正しい位置に入れてください。 ===ビルドとインストール=== 任意: コンパイル速度向上のために {{ic|/etc/makepkg.conf}} で {{ic|<nowiki>MAKEFLAGS="-j16"</nowiki>}} とセットしておくことを推奨します。 ビルドするには約 12 GB のディスク領域が必要です。大容量の DRAM を持っている場合はインメモリの tmpfs を使うことを検討してください。{{ic|makepkg}} または {{ic|makepkg --skipchecksums}} を実行してコンパイルします。そして {{ic|sudo pacman -U *.pkg.tar.gz}} とするだけでパッケージをインストールできます。'''pacman''' が '''reinstall''' するかどうか尋ねてきますので y と答えます。 {{Pkg|linux}} と {{Pkg|linux-headers}} の再インストールが必要です。{{Pkg|linux-docs}} は再インストールしなくても問題ありません。 この方法に従う場合、外部モジュール({{Pkg|nvidia}} や {{Pkg|virtualbox}} など)を再ビルドする必要はありません。 ==カスタムカーネルをビルドする== [http://sourceware.org/git/?p=systemtap.git;a=blob_plain;f=README;hb=HEAD README] を参照してください。 ==トラブルシューティング== === 起動時にパス 4 が失敗する === 以下のメッセージが表示されるときは: /usr/share/systemtap/runtime/stat.c:214:2: error: 'cpu_possible_map' undeclared (first use in this function) systemtap-git パッケージをインストールしてみてください。 === System.map がない === DEBUG_INFO を有効にしてカーネルをビルドした場所から復元できます: # cp src/linux-3.6/System.map /boot/System.map-3.6.7-1-ARCH または: # cp /proc/kallsyms /boot/System.map-`uname -r` === Process return probes not available === カーネルコンフィグが正しいのに {{ic|stap}} を起動したときに以下のメッセージが表示される場合: WARNING: Kernel function symbol table missing [man warning::symbols] semantic error: process return probes not available [man error::inode-uprobes] SystemTap が機能をサポートしているかどうか確認できていません。[[#System.map がない]]の手順に従ってください。
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
SystemTap
に戻る。
検索
検索
SystemTapのソースを表示
話題を追加