対応カーãƒãƒ« |
2.6.8 - 2.6.30 (i386) 2.6.18 - 2.6.30 (x86_64) |
---|---|
対応プãƒã‚»ãƒƒã‚µ |
x86, x86_64 Pentium4, PentiumM, Atom, Core, Core2, Core i series |
ライブラリ | binutils, elfutils, kernel-debuginfo |
対応ディストリビューション |
Red Hat Enterprise Linux 4.0 Red Hat Enterprise Linux 4.3 Red Hat Enterprise Linux 5.0 Red Hat Enterprise Linux 5.1 Red Hat Enterprise Linux 5.4 Miracle Linux 4.0 SP1 Fedora 12 |
procfs, kallsyms, apic, kprobes, relayfsãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚る。
OProfileãªã©ã€ãƒ—ãƒã‚»ãƒƒã‚µã®æ©Ÿèƒ½ã®ä¸€ã¤ã§ã‚る性能モニタリング機能(PEBS)を用ã„ã‚‹ ツールã¨ã®ä½µç”¨ã¯ã§ããªã„。 (プãƒã‚»ãƒƒã‚µã®ä»•æ§˜ã«ã‚ˆã‚Šã€æ€§èƒ½ãƒ¢ãƒ‹ã‚¿ãƒªãƒ³ã‚°æ©Ÿèƒ½ã¨åˆ†å²å‘½ä»¤ãƒˆãƒ¬ãƒ¼ã‚¹æ©Ÿèƒ½ãŒ åŒã˜ãƒ¡ãƒ¢ãƒªé ˜åŸŸã§ç®¡ç†ã•ã‚Œã‚‹ãŸã‚)
一般的ãªã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¨åŒã˜ã‚ˆã†ã«ã€tarボールを解å‡ã—ã€configureスクリプトを走らã›ã€ make, make installã™ã‚‹ã“ã¨ã§ãƒ“ルドã¨ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¯å®Œäº†ã™ã‚‹ã€‚
Btraxã¯ãƒ—ãƒã‚»ãƒƒã‚µã«ã‚ã‚‹BTS(Branch Trace Store)ã¨å‘¼ã°ã‚Œã‚‹æ©Ÿèƒ½ã‚’利用ã—ã¦ã„る。 BTS機能ã¯ã‚¸ãƒ£ãƒ³ãƒ—や割り込ã¿ãŒã‚ã£ãŸã¨ãã«ã€ã‚¸ãƒ£ãƒ³ãƒ—å…ƒã¨ã‚¸ãƒ£ãƒ³ãƒ—先をé€ä¸€è¨˜éŒ²ã™ã‚‹æ©Ÿèƒ½ã§ã‚り〠Btraxã¯ã“ã®æƒ…å ±ã‚’å–å¾—ã™ã‚‹ã“ã¨ã§ã‚«ãƒãƒ¬ãƒƒã‚¸è§£æžã‚’è¡Œã£ã¦ã„る。
Btraxã¯ä»¥ä¸‹ã®ã‚³ãƒžãƒ³ãƒ‰ã‹ã‚‰æ§‹æˆã•ã‚Œã‚‹ã€‚
コマンドå | æ¦‚è¦ |
---|---|
bt_collect_log |
BTSãƒã‚°å–å¾—ã™ã‚‹ã€‚ ãƒã‚°å–å¾—ã¯ãƒ—ãƒã‚»ã‚¹ã®é–‹å§‹ã‹ã‚‰çµ‚了ã¾ã§ã™ã¹ã¦ã‚’得る方法〠既ã«å®Ÿè¡Œã—ã¦ã„るプãƒã‚»ã‚¹ã®ä»»æ„ã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§ãƒã‚°å–å¾—ã™ã‚‹æ–¹æ³•ã€ ã‚る関数ã‹ã‚‰ã‚る関数ã¾ã§ã®ãƒã‚°å–å¾—ã‚’è¡Œã†æ–¹æ³•ã€ 特定ã®ã‚·ã‚¹ãƒ†ãƒ コールã‹ã‚‰ãƒã‚°å–得を開始ã™ã‚‹æ–¹æ³•ãªã©ãŒã‚る。 |
bt_split |
BTSãƒã‚°ã‚’PIDã§åˆ†é›¢ã™ã‚‹ã€‚ |
bt_coverage |
BTSãƒã‚°ã‹ã‚‰ã‚«ãƒãƒ¬ãƒƒã‚¸ã‚’解æžã—ã€HTMLå½¢å¼ã§å‡ºåŠ›ã™ã‚‹ã€‚ 解æžç¯„囲をé™å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã‚る。 |
bt_execpath |
BTSãƒã‚°ã‹ã‚‰ã€ã©ã®ã‚ˆã†ãªå®Ÿè¡Œãƒ‘スを通ã£ãŸã‹ã‚’表示ã™ã‚‹ã€‚ 解æžç¯„囲をé™å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã‚る。 |
å„コマンドã§åˆ©ç”¨å¯èƒ½ãªã‚ªãƒ—ションã«ã¤ã„ã¦ã¯ リファレンスをå‚ç…§ã®ã“ã¨
アプリケーション全体ã®ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã§ã¯ãªãã€ä¸€éƒ¨ã®ã¿ã®ã‚«ãƒãƒ¬ãƒ¼ã‚¸ã‚’解æžã—ãŸã„å ´åˆã€ 以下ã®é–¢æ•°ã‚’使ã†ã“ã¨ã§ã€BTSãƒã‚°ã®å–得範囲をé™å®šã™ã‚‹ã“ã¨ãŒã§ãる。 ã“れらã®é–¢æ•°ã¯"btrax/bt_for_ap.h"ã‚’includeã™ã‚‹ã“ã¨ã§åˆ©ç”¨å¯èƒ½ã¨ãªã‚‹ã€‚ ãªãŠã€Btraxã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã‚¢ãƒ—リケーションã®å…ˆé ã‹ã‚‰ãƒã‚°å–得を開始ã—ã¦ã—ã¾ã†ãŸã‚〠特定ã®é ˜åŸŸã®ã¿ã®ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã„ãŸã„å ´åˆã€ã‚らã‹ã˜ã‚main関数ã®é ã§BTSãƒã‚°å–å¾—ã‚’ åœæ¢ã—ã¦ãŠãå¿…è¦ãŒã‚る。
関数å | æ¦‚è¦ |
---|---|
bt_start_from_ap() |
ã“ã®é–¢æ•°ã‹ã‚‰BTSãƒã‚°ã®å–得を開始ã™ã‚‹ |
bt_stop_from_ap() |
ã“ã®é–¢æ•°ã‹ã‚‰BTSãƒã‚°ã®å–å¾—ã‚’åœæ¢ã™ã‚‹ |
btraxã§ã¯ã€ãƒˆãƒ¬ãƒ¼ã‚¹å¯¾è±¡ãŒã‚«ãƒ¼ãƒãƒ«ã‹ã‚¢ãƒ—リケーションã‹ã«ã‚ˆã£ã¦ã€å¿…è¦ãªæ‰‹é †ãŒç•°ãªã‚‹ã€‚ 以下ã®è¡¨ã«ãƒˆãƒ¬ãƒ¼ã‚¹å¯¾è±¡ã¨ãƒˆãƒ¬ãƒ¼ã‚¹æ‰‹é †ã®æ¦‚è¦ã‚’示ã™ã€‚
# | トレース対象 | ãƒã‚¤ãƒŠãƒªå†æ§‹ç¯‰ | ãƒˆãƒ¬ãƒ¼ã‚¹æ‰‹é †ã®æ¦‚è¦ | |
---|---|---|---|---|
カーãƒãƒ«/アプリ | トレース範囲 | |||
1 | カーãƒãƒ« | ä»»æ„ã®éƒ¨åˆ†ã ã‘をトレース。例ãˆã°ã€ã‚る関数ã ã‘トレース | ãªã— |
|
2 | アプリ | 実行直後ã‹ã‚‰ã®å…¨æŒ™å‹•ã‚’トレース | ãªã— |
|
3 | アプリ | ä»»æ„ã®éƒ¨åˆ†ã ã‘をトレース | ãƒ•ãƒƒã‚¯é–¢æ•°è¿½åŠ è¦ |
|
4 | アプリ | 実行ä¸ã®ã‚¢ãƒ—リケーションをトレース | ãªã— |
|
5 | システムコール | トレース開始時ã«æŒ‡å®šã—ãŸã‚¢ãƒ—リ(ãŠã‚ˆã³ãã®åプãƒã‚»ã‚¹/スレッド)ã‹ã‚‰ 発行ã•ã‚Œã‚‹ã‚·ã‚¹ãƒ†ãƒ コールã®å®Ÿè¡Œã‚’トレース | ãªã— |
|
カーãƒãƒ«ã®ä»»æ„ã®éƒ¨åˆ†ã®ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã†å ´åˆã€bt_collect_log
ã«
--start
ãŠã‚ˆã³--stop
ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ ã—ã€
関数åã§é–‹å§‹/終了箇所を指定ã™ã‚‹ã€‚
具体的ã«ã¯æ¬¡ã®ã‚ˆã†ã«æŒ‡å®šã™ã‚‹ã€‚
ã“ã®ä¾‹ã§ã¯ã€ext4_create
関数ãŒå‘¼ã°ã‚ŒãŸã‚‰ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’開始ã—ã€
ext4_unlink
関数ãŒå‘¼ã°ã‚ŒãŸã‚‰ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’終了ã™ã‚‹ã‚ˆã†ã«æŒ‡å®šã—ã¦ã„る。
ãªãŠã€-d log_dir
ã¯ãƒã‚°ã‚’出力ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã—ã¦ã„る。
ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯è‡ªå‹•çš„ã«çµ‚了ã—ãªã„ãŸã‚ã€ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’終了ã•ã›ã‚‹ã«ã¯ã¯Ctrl+Cã‚’
bt_collect_log
ã«é€ä¿¡ã™ã‚‹å¿…è¦ãŒã‚る。
ãƒã‚°å–å¾—ãŒå®Œäº†ã—ãŸã‚‰ã€æ¬¡ã¯ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã†ã€‚
ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã¯bt_coverage
コマンドを用ã„る。
具体的ã«ã¯æ¬¡ã®ã‚ˆã†ãªã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã™ã‚‹
解æžå¯¾è±¡ãƒã‚°ã¯-f
オプションã§ãƒã‚°ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…ã®cpu0,cpu1...ã¨ã„ã†ãƒ•ã‚¡ã‚¤ãƒ«ã‚’渡ã™ã€‚
複数cpu*ファイルãŒã‚ã‚‹å ´åˆã¯ã€ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã§æŒ‡å®šã™ã‚‹ã€‚
ã¾ãŸã€ä»Šå›žã¯è§£æžå¯¾è±¡ãŒã‚«ãƒ¼ãƒãƒ«ã§ã‚ã‚‹ãŸã‚ã€ã‚«ãƒ¼ãƒãƒ«ç©ºé–“を指定ã™ã‚‹ã‚ªãƒ—ション--ker
ã‚’
指定ã™ã‚‹ã€‚
ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžçµæžœã®å‡ºåŠ›å…ˆã¯-o
オプションã§æŒ‡å®šã™ã‚‹ã€‚
bt_coverage
ã¯æŒ‡å®šã•ã‚ŒãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’作æˆã—ã€å†…部ã«HTMLファイルを書ã出ã™ã€‚
アプリケーションã®å…¨æŒ™å‹•ã®è§£æžã‚’è¡Œã†å ´åˆã€
bt_collect_log
ã§BTSãƒã‚°ã‚’å–å¾—ã™ã‚‹éš›ã€-c
オプションã§
トレース対象ã®ã‚¢ãƒ—リケーションを実行ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹ã€‚
ãƒã‚°å–å¾—ãŒå®Œäº†ã™ã‚‹ã¨ã€-d
オプションã§æŒ‡å®šã—ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒä½œæˆã•ã‚Œã€
ãã®ä¸ã«BTSãƒã‚°ãŒæ ¼ç´ã•ã‚Œã‚‹ã€‚
次ã«ãƒã‚°ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«å…¥ã‚Šã€bt_splitコマンドã§CPUã”ã¨ã®BTSãƒã‚°ã‚’
PIDå˜ä½ã«åˆ†é›¢ã™ã‚‹ã€‚
最後ã«ã€bt_splitコマンドã«ã‚ˆã£ã¦PIDã”ã¨ã«åˆ†é›¢ã•ã‚ŒãŸãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’
bt_coverageコマンドã§è§£æžã™ã‚‹ã€‚
-o
オプションã§æŒ‡å®šã—ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«
ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžçµæžœãŒHTMLã§å‡ºåŠ›ã•ã‚Œã‚‹ã€‚
ã¾ãŸã€ä¾‹ã§ã¯ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚¢ãƒ—リケーションã ã‘を解æžã™ã‚‹ãŸã‚ã€
ユーザ空間指定フラグã§ã‚ã‚‹--usr
オプションを渡ã—ã¦ã„る。
カーãƒãƒ«ç©ºé–“ã‚‚åˆã‚ã›ã¦ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžçµæžœã‚’å–å¾—ã™ã‚‹å ´åˆã¯ã€--usr
ã®ã‹ã‚ã‚Šã«
--all
を使ã†ã“ã¨ã‚‚ã§ãる。
アプリケーションã®ä»»æ„ã®éƒ¨åˆ†ã®ã¿ã®ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã„ãŸã„å ´åˆã€ アプリケーションã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã«ãƒˆãƒ¬ãƒ¼ã‚¹é–‹å§‹/終了用フック間数を埋ã‚è¾¼ã¿ã€ å†ã‚³ãƒ³ãƒ‘イルã™ã‚‹å¿…è¦ãŒã‚る。ãれらã®é–¢æ•°ã¯"btrax/bt_for_ap.h"をインクルード ã™ã‚‹ã“ã¨ã§åˆ©ç”¨å¯èƒ½ã«ãªã‚‹ã€‚
Btraxã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã‚¢ãƒ—リケーションã®å…ˆé ã‹ã‚‰ トレースを開始ã—ã¦ã—ã¾ã†ãŸã‚ã€ã‚¢ãƒ—リケーションã®main関数ã®å…ˆé ã«ã€ トレース終了フック間数を入れã¦ãŠãå¿…è¦ãŒã‚る。 例ãˆã°ã€æ¬¡ã®ã‚ˆã†ã«ãƒˆãƒ¬ãƒ¼ã‚¹é–‹å§‹/終了フック間数を入れる。
#include "btrax/bt_for_ap.h" int main(int argc, char *argv[]) bt_stop_from_ap(); /* トレース終了フック関数 */ ... ... bt_start_from_ap(); /* トレース開始フック関数 */ ... /* 解æžå¯¾è±¡ã‚³ãƒ¼ãƒ‰ */ ... bt_stop_from_ap(); /* トレース終了 */ ... }
ã“ã®ã‚ˆã†ã«ãƒˆãƒ¬ãƒ¼ã‚¹é–‹å§‹/終了フック間数を入れã€å†ãƒ“ルドã—ãŸå¾Œã¯ã€ 「アプリケーションã®å®Ÿè¡Œç›´å¾Œã‹ã‚‰ã®å…¨æŒ™å‹•ã‚’トレース〠ã¨åŒã˜æ‰‹é †ã‚’è¸ã‚€ã“ã¨ã§ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžãŒå¯èƒ½ã¨ãªã‚‹ã€‚
æ—¢ã«å®Ÿè¡Œã•ã‚Œã¦ã„るアプリケーションã®ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã„ãŸã„å ´åˆã€
bt_collect_log
ã§ãƒã‚°ã‚’åŽé›†ã™ã‚‹éš›ã«-p
オプションã¨ã€
解æžã—ãŸã„アプリケーションã®PIDを指定ã™ã‚‹ã€‚具体的ã«ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ãªã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã™ã‚‹ã€‚
-p 12345
ã¯PID=12345ã®ã‚¢ãƒ—リケーションをæ„味ã—ã¦ã„る。
ãƒã‚°ã®å–å¾—ã¯ãƒ—ãƒã‚»ã‚¹ãŒçµ‚了ã™ã‚‹ã‹ã€bt_collect_log
ã«Ctrl+Cã‚’é€ä¿¡ã™ã‚‹ã¾ã§ç¶šã。
ãƒã‚°å–å¾—ãŒå®Œäº†ã—ãŸã‚‰ã€ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã†ãŒã€ã“ã®æ–¹æ³•ã¯ 「アプリケーションã®å®Ÿè¡Œç›´å¾Œã‹ã‚‰ã®å…¨æŒ™å‹•ã‚’トレースã€ã¨ åŒã˜ã§ã‚る。
# cd log_dir # bt_split -d . # bt_coverage --usr -f PID -o html_dir # firefox html_dir/top.html
システムコールã®å®Ÿè¡Œã‚’トレースã™ã‚‹ã«ã¯ã€bt_collect_log
ã§
ãƒã‚°ã‚’åŽé›†ã™ã‚‹éš›ã«--syscall
オプションã¨ã‚«ãƒ¼ãƒãƒ«å†…ã®ã‚·ã‚¹ãƒ†ãƒ コールを処ç†ã™ã‚‹
関数åを渡ã™å¿…è¦ãŒã‚る。
次ã®ä¾‹ã§ã¯ã€gettimeofday
システムコールをトレースã™ã‚‹ä¾‹ã‚’示ã™ã€‚
sys_gettimeofday
ã¯ã‚·ã‚¹ãƒ†ãƒ コールgettimeofdayã®ã‚«ãƒ¼ãƒãƒ«å†…エントリãƒã‚¤ãƒ³ãƒˆã§ã‚る。
次ã«ã€bt_coverage
コマンドã§ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã„ã€çµæžœã‚’出力ã™ã‚‹ã€‚
今回ã¯ã‚·ã‚¹ãƒ†ãƒ コール内部ã®ã‚«ãƒãƒ¬ãƒ¼ã‚¸æ¸¬å®šã‚’è¡Œã†ãŸã‚ã€ã‚«ãƒ¼ãƒãƒ«ç©ºé–“ã®ã¿ã‚’解æžå¯¾è±¡ã«ã™ã‚‹--ker
オプションを指定ã—ã€ã•ã‚‰ã«è§£æžå¯¾è±¡ã‚’é™å®šã™ã‚‹ç‚ºã«-I
オプションã§
エントリãƒã‚¤ãƒ³ãƒˆsys_gettimeofday
を指定ã—ã¦ã„る。
ã¾ãŸã€ä½™åˆ†ãªè§£æžã‚’è¡Œã‚ã›ãªã„ãŸã‚-E
オプションã§schedule(), dump_stack(), printk()
ã‚’çœã„ã¦ã„る。
ãªãŠã€ä»Šå›žã¯è§£æžå¯¾è±¡ã¨ã—ã¦ã‚«ãƒ¼ãƒãƒ«ã®ã¿ã‚’指定ã—ãŸãŒã€ã‚¢ãƒ—リケーションã¨ã‚«ãƒ¼ãƒãƒ«ã€
ã‚ã‚ã›ã¦ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã„ãŸã„å ´åˆã¯ã€--ker
ã®ã‹ã‚ã‚Šã«
--all
を指定ã™ã‚‹ã“ã¨ã‚‚ã§ãる。
Btraxã¯ã‚«ãƒãƒ¬ãƒ¼ã‚¸ã®æ¯”較をサãƒãƒ¼ãƒˆã—ã¦ãŠã‚Šã€ ã‚るアプリケーションã®å…¥åŠ›ã‚’変ãˆã‚‹ãªã©ã—ã¦ã€ã‚«ãƒãƒ¬ãƒ¼ã‚¸ãŒã©ã®ã‚ˆã†ã«å¤‰ã‚ã‚‹ã‹ã‚’知るã“ã¨ãŒã§ãる。 今回ã¯lsコマンドを例ã«ã¨ã£ã¦èª¬æ˜Žã™ã‚‹ã€‚
ã¾ãšã€bt_collect_log
コマンドã§ãƒã‚°ã‚’å–å¾—ã™ã‚‹ã€‚
次ã®ä¾‹ã§ã¯'ls'
ã¨'ls -l'
を実行ã—ãŸã¨ãã®ãƒã‚°ã‚’å–å¾—ã—ã¦ã„る。
次ã«ã€ãã‚Œãžã‚Œã®ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’bt_split
コマンドã«ã‚ˆã£ã¦
PIDã”ã¨ã«åˆ†é›¢ã™ã‚‹ã€‚
最後ã«ã€bt_coverage
コマンドã§ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã‚’è¡Œã†ãŒã€
--f2
オプションã§æ¯”較対象ã®ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’指定ã™ã‚‹ã“ã¨ã§ã€
ã‚«ãƒãƒ¬ãƒ¼ã‚¸æ¯”較çµæžœã‚’å¾—ã‚‹ã“ã¨ãŒã§ãる。
éŽåŽ»ã«å¾—られãŸè¤‡æ•°ã®ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã€æ–°ã—ã実行ã—ã¦å¾—られãŸãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã®
ã‚«ãƒãƒ¬ãƒ¼ã‚¸ã‚’比較ã™ã‚‹å ´åˆã€bt_coverage
コマンドã«æŒ‡å®šã™ã‚‹
-f
オプションã«è¤‡æ•°ã®ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’渡ã™ã“ã¨ã§ã‚«ãƒãƒ¬ãƒ¼ã‚¸æ¯”較をã™ã‚‹ã“ã¨ãŒã§ãる。
図ä¸ã®OK,NT,HTã¯ãã‚Œãžã‚Œåˆ†å²å‘½ä»¤ã®åˆ†é¡žã‚’表ã—ã¦ãŠã‚Šã€OKã¯Taken,Untaken両方実行ã—ãŸã“ã¨ã‚’〠NTã¯å®Ÿè¡Œã•ã‚Œã¦ã„ãªã„ã“ã¨ã‚’ã€HTã¯åˆ†å²/通éŽã®ç‰‡æ–¹ã®ã¿ã‚’実行ã—ãŸã“ã¨ã‚’æ„味ã—ã¦ã„る。
Btraxã¯ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžã ã‘ã§ãªãã€bt_execpath
コマンドを使ã†ã“ã¨ã§ã€
実行経路を表示ã™ã‚‹ã“ã¨ã‚‚ã§ãる。
bt_execpath
コマンドã§æŒ‡å®šã§ãるオプションã¯
リファレンス#bt_execpathã‚’å‚照。
bt_execpath
ã®ä½¿ç”¨ä¾‹ã‚’示ã™ã€‚
例ã§ã¯ã€ãƒ—ãƒã‚»ã‚¹ã”ã¨ã«åˆ†å‰²ã•ã‚ŒãŸãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’èªã¿ã€ ユーザ空間ã ã‘を解æžå¯¾è±¡ã«ã—ã€ã‚µãƒžãƒªè¡¨ç¤ºã‚’è¡Œã†ã‚ˆã†ã«æŒ‡å®šã—ã¦ã„る。
bt_collect_log
ã§åˆ©ç”¨å¯èƒ½ãªã‚ªãƒ—ションオプション | æ„味 |
---|---|
-d DIR_NAME |
ãƒã‚°å‡ºåŠ›å…ˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã™ã‚‹ |
--start SYMBOL |
トレース開始/終了ã™ã‚‹é–¢æ•°åを指定ã™ã‚‹ |
-p PID |
指定ã—ãŸPIDã®ã‚¢ãƒ—リケーションをトレースã™ã‚‹ |
-c COMMAND |
COMMAND ã«ã‚ˆã£ã¦å®Ÿè¡Œã•ã‚Œã‚‹ã‚¢ãƒ—リケーションをトレースã™ã‚‹ |
--syscall FUNC_NAME,FUNCNAME2,... |
システムコールã®ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’è¡Œã†ã€‚
FUNC_NAME ã«ã¯ã‚«ãƒ¼ãƒãƒ«å†…ã®ã‚·ã‚¹ãƒ†ãƒ コールエントリãƒã‚¤ãƒ³ãƒˆã‚’指定ã™ã‚‹ã€‚例: sys_open |
bt_split
ã§åˆ©ç”¨å¯èƒ½ãªã‚ªãƒ—ションオプション | æ„味 |
---|---|
-d DIR_NAME |
ãƒã‚°ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã™ã‚‹ |
bt_coverage
ã§åˆ©ç”¨å¯èƒ½ãªã‚ªãƒ—ションオプション | æ„味 |
---|---|
-f LOG_FILE,LOG_FILE2,... |
解æžå¯¾è±¡ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’指定ã™ã‚‹ |
-o DIR_NAME |
ã‚«ãƒãƒ¬ãƒ¼ã‚¸è§£æžçµæžœHTMLã®å‡ºåŠ›å…ˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã™ã‚‹ |
--usr |
解æžå¯¾è±¡ã‚¢ãƒ‰ãƒ¬ã‚¹ç¯„囲を指定ã™ã‚‹ã€‚--usr ã¯ãƒ¦ãƒ¼ã‚¶ç©ºé–“ã®ã¿--ker ã¯ã‚«ãƒ¼ãƒãƒ«ç©ºé–“ã®ã¿--all ã¯å…¨ç©ºé–“-a ADDR:ADDR ã§ã¯ãƒ¦ãƒ¼ã‚¶ãŒã‚¢ãƒ‰ãƒ¬ã‚¹ç¯„囲を直接指定ã™ã‚‹ã“ã¨ãŒã§ãる例ãˆã°ã€ -a 0xffffffff80000000:0xffffffffffffffff ã®ã‚ˆã†ã«æŒ‡å®šå¯èƒ½ã§ã‚る。
|
-I FUNC_NAME,FUNC_NAME2,... |
解æžå¯¾è±¡ã®é–¢æ•°ã‚’指定ã™ã‚‹ |
-E FUNC_NAME,FUNC_NAME2,... |
解æžå¯¾è±¡ã‹ã‚‰é™¤å¤–ã™ã‚‹é–¢æ•°ã‚’指定ã™ã‚‹ |
--f2 LOG_FILE,LOG_FILE2,... |
-f ã§æŒ‡å®šã—ãŸãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã®æ¯”較用ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’指定ã™ã‚‹ |
-S SOURCE_DIR |
BtraxãŒè‡ªå‹•çš„ã«ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®æƒ…å ±ã‚’å¾—ã‚‹ã“ã¨ãŒã§ããªã‹ã£ãŸå ´åˆã€ ã“ã®ã‚ªãƒ—ションを使ã„ã€ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãる。 |
bt_execpath
ã§åˆ©ç”¨å¯èƒ½ãªã‚ªãƒ—ションオプション | æ„味 |
---|---|
-s |
サマリ表示をã™ã‚‹ |
--usr |
解æžå¯¾è±¡ã‚¢ãƒ‰ãƒ¬ã‚¹ç¯„囲を指定ã™ã‚‹ã€‚--usr ã¯ãƒ¦ãƒ¼ã‚¶ç©ºé–“ã®ã¿--ker ã¯ã‚«ãƒ¼ãƒãƒ«ç©ºé–“ã®ã¿--all ã¯å…¨ç©ºé–“-a ADDR:ADDR ã§ã¯ãƒ¦ãƒ¼ã‚¶ãŒã‚¢ãƒ‰ãƒ¬ã‚¹ç¯„囲を直接指定ã™ã‚‹ã“ã¨ãŒã§ãる例ãˆã°ã€ -a 0xffffffff80000000:0xffffffffffffffff ã®ã‚ˆã†ã«æŒ‡å®šå¯èƒ½ã§ã‚る。
|
-f FILENAME |
ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’指定ã™ã‚‹ |