対応カーãƒãƒ« |
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 |
ãƒã‚°ãƒ•ァイルを指定ã™ã‚‹ |