T2EX 用タスクトレーサ
取扱説明書
T-Engine リファレンスボード用
Version 1.01

パーソナルメディア株式会社

Copyright c 2013 Personal Media Corporation

目次

2

目次
修正履歴

3

1

はじめに
1.1 本製品の概要 . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 ソフトウェア動作条件 . . . . . . . . . . . . . . . . . . . .
1.2.1 T-Engine リファレンスボード側の動作条件 . . . .
1.2.2 表示用 PC 側の動作条件 . . . . . . . . . . . . . . .
1.3 ソフトウェア構成 . . . . . . . . . . . . . . . . . . . . . . .

4
4
5
5
5
6

2

セットアップ8
2.1 起動手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 動作確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3

使用方法
3.1 起動方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 トレース対象 . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 トレース対象の選択 . . . . . . . . . . . . . . . . .
3.2.2 トレース対象のサスペンド . . . . . . . . . . . . . .
3.3 トレース開始/終了/条件指定 . . . . . . . . . . . . . . . .
3.3.1 トレース条件の指定 . . . . . . . . . . . . . . . . .
3.3.2 トレース開始/終了 . . . . . . . . . . . . . . . . . .
3.3.3 プログラム内からのトレース指定 . . . . . . . . . .
3.4 トレース結果の表示 . . . . . . . . . . . . . . . . . . . . .
3.4.1 表示モードの切替 . . . . . . . . . . . . . . . . . . .
3.4.2 グラフの見方 . . . . . . . . . . . . . . . . . . . . .
3.4.3 グラフの拡大縮小 . . . . . . . . . . . . . . . . . . .
3.4.4 タスクや割込ハンドラの表示順の入替 . . . . . . .
3.5 検索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 ファイル保存 . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 ファイル読込/保存 . . . . . . . . . . . . . . . . . .
3.6.2 ファイル形式 . . . . . . . . . . . . . . . . . . . . .

14
14
15
15
16
17
17
19
20
20
20
23
23
24
24
25
25
25

索引

28

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

目次

3

修正履歴
Version 1.01
• Java 7 Update 21 以降に対応
Version 1.00
• 新規作成タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

1. はじめに

1

はじめに

1.1

本製品の概要4

本製品「T2EX 用タスクトレーサ」は、T-Kernel 上のプログラムの動作解析ツールです。主な特長は次の通りです。

• タスクの遷移やシステムコール発行のログをグラフィカルに表示
T-Kernel 上で動作している複数のタスクの切り替わり (ディスパッチ) の様子がグラフで表示され、組込みシステム内部のソフトウェ
アの動作をビジュアルに把握できます。また、各タスクの実行したシステムコールの発行時刻、引数、戻値などのログを記録し、これらの情報を合わせて表示することも可能です。組込みシステムの動
作解析、デバッグ、チューニングなどを行う際には、タスクトレー
サで提供するこれらの情報が役立ちます。
• T-Kernel 2.0 対応、T2EX 対応
T-Kernel 2.0 で新しく追加された 64 ビット引数のシステムコール
や、T2EX (T-Kernel 2.0 Extension) で新しく追加された拡張 SVC
もトレース可能です。
• トレース対象プログラムや実行環境の修正が不要
トレース対象となるタスクやハンドラのプログラムの修正や再コン
パイル、ソースコード等は必要ありません。また、システム起動時から動作しているタスクやデバイスドライバやミドルウェア等を後からトレース対象とすることも可能です。このため、トレースの有無によるシステム起動時の設定変更などを行う必要がなく、最終製品とほぼ同じ状態の下で組込みシステムの実行トレースを行うことができます。

• タスク、ドライバなど広範囲のプログラムに対応
T-Kernel 上で動くタスクや割込ハンドラを含めた複数のプログラ
ムを同時にトレースできます。アプリケーションプログラムはもちろん、拡張 SVC ハンドラやサブシステムによるミドルウェア、TKernel/SM のデバイス管理機能によるデバイスドライバの実行ト
レースも可能です。
• 用途に適した複数の表示モードを提供
実際の時間経過をグラフ横軸の単位とする時間グラフのほか、実行タスクの遷移やシステムコール発行の回数を横軸の単位とするイベ
タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

1. はじめに5ントグラフがあり、グラフの拡大や縮小表示も可能です。また、グラフのかわりに表形式でログを表示することも可能です。

• 収集するログの選択と豊富な検索機能
実行トレースのログは膨大な量になることが多いため、動作解析したい部分をログの中から素早く見つけ出すには、検索機能が必須です。タスクトレーサでは、特定タスクのディスパッチや特定システ
ムコールの発行などを検索条件とした、ログ内の柔軟な検索機能を提供しています。また、トレース中に収集するログの種類をあらかじめ選択できます。たとえば、実行タスク遷移のログのみを収集してシステムコール発行のログは収集しないといった指定が可能です。

1.2

ソフトウェア動作条件「T2EX 用タスクトレーサ」のソフトウェア動作条件は次の通りです。

1.2.1

T-Engine リファレンスボード側の動作条件

T-Engine リファレンスボードに T2EX を導入した構成で動作します。
T2EX バージョン 2.00.00 で動作を確認しています。

1.2.2

表示用 PC 側の動作条件

トレース結果を表示する表示用 PC は、次の条件を満たす必要があります。

• OS および開発環境について
表示用 PC の OS は何でも構いません。また T-Engine リファレンス
ボード用開発環境がインストールされている必要もありませんが、インストールされていても構いません。つまり表示用 PC は開発用
PC と同じでも構いませんし、別の PC でも構いません。

• Java およびウェブブラウザについて
表示用 PC には、Java 実行環境、およびウェブブラウザが必要です。
Java は http://www.java.com/ からダウンロードできます。
ウェブブラウザは何でも構いませんが、ブラウザの設定で Java アプ
レットの実行を許可しておく必要があります。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

1. はじめに6. タスクトレーサでは Java アプレットを使います。JavaScriptは使いません。
. 当社では表示用 PC は以下の環境で動作確認しております。
OS
Java
ブラウザ

WindowsXP SP3
Java 7 Update 21
Internet Explorer 8

Ubuntu 12.04 LTS
Java 7 Update 21
Chrome 26.0

• LAN 接続およびシリアル接続について
タスクトレーサの起動には、PC と T-Engine リファレンスボードをシリアル (RS-232C) で接続する必要があります。
一方、タスクトレーサの起動後は、タスクトレーサと表示用 PC の間の通信は LAN で行いますので、シリアル接続は必須ではありま
せん。

1.3

ソフトウェア構成「T2EX 用タスクトレーサ」は、T-Engine リファレンスボード上で動作する 2 個のプログラムと、表示用 PC 上で動作する 1 個のプログラムの、合計 3 個のプログラムによって構成されます。

(1) トレース用ドライバ (tracedrv) — T-Engine リファレンスボード
上で動作
tracedrv は、T-Kernel に標準的に含まれているデバッガサポート
機能 (T-Kernel/DS) を利用して、トレース対象プログラムのタスク
遷移やシステムコール発行のログを収集し、T-Engine リファレンス
ボードのメモリ (RAM) 上に記憶します。
tracedrv は下記 tracenet から使用されるほか、ユーザプログラ
ムからデバイス名 "tsktrc" を直接オープンして、ユーザプログラ
ム内でトレース開始/停止を指定することも可能です。
(2) トレース用通信プログラム (tracenet) — T-Engine リファレンス
ボード上で動作
tracenet は、T-Engine リファレンスボードのメモリ上に記憶されたログを、表示用 PC に LAN(TCP/IP) で転送します。通信プロト
コルは HTTP を使います。
. LAN の通信が発生するのは、トレース中ではなく、トレース終了後です。トレース中はメモリ上に記録していくだけで通信
タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

1. はじめに7は発生しないため、通信によってトレース速度が低下することはありません。

(3) 表示用 Java アプレット— 表示用 PC 上で動作

表示用 Java アプレットは、tracenet によって送信されたログを表
示用 PC のウェブブラウザ上に表示します。この Java アプレット
は、ブラウザが tracenet から自動的にダウンロードしますので、特にインストールする必要はありません。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

2. セットアップ

8

2

セットアップ

2.1

起動手順

次の手順で、T-Engine リファレンスボード上でタスクトレーサを起動します。

(1) T2EX のソースの変更
T2EX の fs attach を使って microSD カードを接続し、pm loadspgを使ってシステムプログラムのロードができるように、T2EX のソースを変更します。
• T2EX 起動時にタスクトレーサも自動起動するためには、起動処理 (kernel/usermain t2ex/usermain.c) のソースを変更します。
• T2EX 起動時にはタスクトレーサは起動せず、後からコマンド
ライン入力で起動するためには、コマンドライン処理(kernel/usermain t2ex/command.c) のソースを変更します。
(2) T2EX のメイク、インストール
T2EX をメイクし、T-Engine リファレンスボード上にインストー
ルします。
(3) トレース用ドライバとトレース用通信プログラムのコピー
タスクトレーサのトレース用ドライバ (tracedrv) とトレース用通信プログラム (tracenet) を microSD カードにコピーします。

(4) トレース用ドライバの起動
T2EX の fs attach を使って microSD カードを接続したのち、
pm loadspg を使って、microSD カードから tracedrv をロード (起動) します。
ここで tracedrv には次の引数を渡すことができます。
引数

意味

省略時

!優先度
-m 数値
-m 数値K-m 数値M

ドライバ内部タスクの優先度

!100
-m 10

ログ記録容量の指定 (パーセント指定)(KB 単位)(MB 単位)-m 引数を指定しない場合は、tracedrv 起動時点での空きメモリ容量の 10%がログ記憶容量として確保されます。
タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

2. セットアップ

9(5) トレース用通信プログラムの起動
T2EX の pm loadspg を使って、microSD カードから tracenet を
ロード (起動) します。
ここで tracenet には次の引数を渡すことができます。
引数

意味

省略時

!優先度
-p 番号
-ipadr xxx.xxx.xxx.xxx-subnet xxx.xxx.xxx.xxx-dnsadr xxx.xxx.xxx.xxx-gateway xxx.xxx.xxx.xxx

通信タスクの優先度

!100
-p 80
設定なし
設定なし
設定なし
設定なし

HTTP ポート番号
IP アドレス
サブネットマスク
DNS サーバ
ゲートウェイ-ipadr 0.0.0.0 を指定した場合は、T-Engine リファレンスボー
ドの IP アドレスを DHCP で自動的に割り当てます。その代わりにIP アドレスを固定で割り当てる場合は、その値を直接指定してくだ
さい。
一方、-ipadr, -subnet, -dsnadr, -gateway をいずれも指定しない場合は、タスクトレーサ側ではネットワーク設定を行いません。
これは、既に タスクトレーサ以外のプログラムによってネットワー
クが起動 (設定) されている場合のためのものです。

(6) 表示用 Java アプレットの起動確認
表示用 PC から接続できることを確認するため、表示用 PC 上でウェ
ブブラウザを起動し、T-Engine リファレンスボードに接続します。たとえば T-Engine リファレンスボードの IP アドレスが 192.9.200.162
で、tracenet のポート番号が標準の 80 であれば、接続するべき
URL は
http://192.9.200.162/ になります。なお、この URL はコンソー
ル上のタスクトレーサの起動メッセージにも表示されています。
接続するとタスクトレーサの Java アプレットが自動的にダウンロードされたのち、図 2.1 のような初期画面が表示されます。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

2. セットアップ

図 2.1

10

タスクトレーサの表示用 Java アプレットの初期画面. 図 2.2 のようにセキュリティ警告が表示される場合があります
が、問題ありませんので、「リスクを受け入れて、このアプリ
ケーションを実行します」をチェックして、 実行 を選択して
ください。

図 2.2

Java アプレットのセキュリティ警告. 接続できない場合は、ネットワーク設定などを見直してください。なお tracenet が既に起動している場合、ネットワーク設定を変更してもすぐに反映されず、システム再起動後に反映されますので、システムを再起動してください。
. 表示用 Java アプレットのメニュー言語は、日本語と英語の両方に対応しており、PC 側のロケール設定により切り替わります。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

2. セットアップ

2.2

11

動作確認

タスクトレーサが正しくインストールされたことを確認するため、サンプルプログラムの実行のようすをタスクトレーサでトレースしてみます。
ここでは タスクトレーサの CD 内にある次のサンプルプログラムを使い
ます。
名称
タイプ
内容

sample1
システムプログラム
3 つのタスクが遷移する簡単なプログラム(1) サンプルプログラムのメイク、転送
T-Engine リファレンスボード用開発環境で sample1 をメイクし、
T-Engine リファレンスボードの microSD カード上に転送します。
(2) トレース開始
表示用 PC のブラウザ上の Java アプレットの トレース開始 ボタン
をクリックして、トレースを開始します。
「トレース中」と表示されます。(図 2.3)

図 2.3

トレースを開始したところ(3) トレース対象プログラムのロード
Java アプレットのメニューバー →「対象」→「システムプログラム
ロード」を選択すると、ダイアログが表示されます。(図 2.4)

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

2. セットアップ

12

図 2.4

システムプログラムのロード

さきほど転送した sample1 の実行ファイルを選択して、 ロード ボ
タンをクリックします。これにより sample1 がロード (起動) されます。

. sample1 は短いプログラムなので、一瞬で実行が終了します。
(4) トレース終了
Java アプレットの トレース終了 ボタンをクリックして、トレースを終了します。これにより sample1 の実行ログが表示されます。(図
2.5)

図 2.5
タスクトレーサ取扱説明書

sample1 の実行ログのイベントグラフ
c 2013 Personal Media Corporation

2. セットアップ

13

画面左下のラジオボタンで、時間グラフ、イベントグラフ、イベン
ト表の 3 通りの表示モードを切り替えて表示できます。また画面右下の水平スライダーでグラフの横方向の拡大縮小を行うことができます。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

3

使用方法

3.1

起動方法

14

T-Engine リファレンスボード側は、2.1 節の手順に従って T2EX およびタスクトレーサを起動します。
表示用 PC 側は、ウェブブラウザを起動し、T-Engine リファレンスボー
ドに接続します。たとえば T-Engine リファレンスボードの IP アドレスが 192.9.200.162 で、tracenet のポート番号が標準の 80 であれば、接続するべき URL は
http://192.9.200.162/ になります。なお、シリアル接続している場合
は、この URL はコンソール上のタスクトレーサの起動メッセージにも表示されています。
接続するとタスクトレーサの Java アプレットが自動的にダウンロード
されたのち、図 3.1 のような初期画面が表示されます。

図 3.1

タスクトレーサの Java アプレットの初期画面. 図 3.2 のようにセキュリティ警告が表示される場合がありますが、
問題ありませんので、「リスクを受け入れて、このアプリケーション
を実行します」をチェックして、 実行 を選択してください。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

15

図 3.2

3.2

Java アプレットのセキュリティ警告

トレース対象タスクトレーサはシステム上のすべてのプログラム (タスク、割込ハンドラ) のうち、ユーザがトレース対象として選択したプログラムのみをト
レース対象とします。

3.2.1

トレース対象の選択

トレース対象を選択するには、次のようにいろいろな方法が用意されています。これらを組み合わせることで、複数のプログラムにまたがるト
レースも可能です。(図 3.3)

図 3.3

トレース対象の選択メニュー• システムプログラムのロード時にトレース対象とする方法
メニューバー →「対象」→「システムプログラムロード」で、シス
テムプログラムを新規にロードすると、そのプログラムが生成するタスクや定義する割込ハンドラは、すべてトレース対象として追加されます。

. トレース対象とするシステムプログラムの実行ファイルが TEngine リファレンスボード側にない場合は、あらかじめ Tタスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

16

Engine リファレンスボード側にファイル転送しておく必要があります。
. システムプログラムの main 関数 (初期化処理関数) そのものはトレース対象に含まれませんが、main 関数内で生成したタス
クや割込ハンドラはトレース対象に含まれます。
• タスク一覧から個別に指定、または解除する方法
メニューバー →「対象」→「タスク一覧」で、タスクを個別にトレース対象として指定、または解除できます。この方法は既に起動しているプログラムをトレース対象として追加する場合に便利です。
プロセスもタスク (の集合) ですので、タスク一覧で指定できます。

. プロセス名が長い場合は、英数字の先頭 5 文字まで表示されます。
• 割込一覧から個別に指定、または解除する方法
メニューバー →「対象」→「割込一覧」で、割込ハンドラを個別にトレース対象として指定、または解除できます。この方法は既に起動しているプログラムの割込ハンドラをトレース対象として追加する場合に便利です。

. TA HLNG 属性の割込ハンドラ (C 言語などの高級言語で書かれたハンドラ) のみトレース可能です。TA ASM 属性の割込ハン
ドラ (アセンブリ言語で書かれたハンドラ) は対象外です。
• トレース対象を全解除する方法
メニューバー →「対象」→「全解除」でトレース対象をすべて解除できます。

. 今までトレースしていたプログラムをトレース対象から外し、別のプログラムをトレースしたい場合は、この全解除を行って
ください。

3.2.2

トレース対象のサスペンド

通常、トレース対象のタスクは、トレース中であるかトレース中でないかに関係なく、常に実行されます。
これに対してメニューバー →「対象」→「サスペンド」をチェックしておくと、トレース対象のタスクをトレース中のみ動かし、トレースしていタスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

17

ない時はサスペンド (停止) することができます。この機能は、タスクを止めながら少しずつトレースしたい場合に便利です。

. この機能を使った場合、タスクの状態とは無関係に外部から強制的にサスペンドをかけるため、そのタスクがミドルウェア内部の処理を実行中の場合は、そのミドルウェア全体が停止したり、正常に動作しなくなる可能性があり、その結果として、同じミドルウェアを呼び出す他のタスクやプロセスも連鎖的にブロックする可能性があります。サスペンド機能を使う場合は、この点を充分ご理解の上ご使用ください。サスペンドの詳細につきましては、T-Kernel 仕様書の tk_sus_tsk の解説をご参照ください。

3.3
3.3.1

トレース開始/終了/条件指定
トレース条件の指定

トレース開始前に、メニューバー →「トレース」から次のような詳細メニューでトレース条件を選択できます (図 3.4)。

図 3.4

トレース条件の詳細メニュー. トレース条件の指定はトレース開始前に行う必要があります。トレー
ス中は変更できません。
• システムコールを記録
システムコール発行のログを記録するかどうかを選択します。

. システムコール発行のログを記録する、しないに関わらず、「実
行タスク遷移 (ディスパッチ)」および「割込ハンドラの開始と終了」は必ず記録します。
システムコール発行のログを記録する場合は、さらに次の詳細設定を選択できます。
タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

18◦ T-Kernel システムコール
T-Kernel のシステムコール (名称:tk_xxx_yyy) を記録するかどうかを指定します。
. T-Kernel/DS のシステムコール (名称:td_xxx_yyy) は記録対象に含まれません。
◦ Extension/拡張 SVC
拡張 SVC を記録するかどうかを指定します。

. T-Kernel/SM のシステムコール (tk_opn_dev など) は厳密に言えば拡張 SVC ですが、タスクトレーサでは「T-Kernel
システムコール」に含めています。
◦ 引数を記録
システムコールや拡張 SVC の引数および呼出元アドレスを記
録するかどうかを指定します。

◦ 引数の最大長システムコールや拡張 SVC の引数を最大で何個まで記録するかを指定します。5 個、10 個、20 個が選択可能です。標準では5 個です。ただし 64 ビット引数は 2 個と数えます。

• ログ記憶容量
ログを記憶するための T-Engine リファレンスボード上のメモリ(RAM) 容量を指定します。ここで指定したメモリ量はタスクトレー
サ専用に確保されます。単位は KB です。また、末尾に「%」をつけた場合は、空きメモリ容量に対する割合 (パーセント) で指定できます。
この容量を増やせば多くのログを多く記録できます。ただしタスク
トレーサ以外のプログラムが確保できるメモリは減少します。また、システムの安定的な動作のために、ある程度の空きメモリを残す必
要があります。
なお標準ではタスクトレーサの起動時に、空きメモリ容量の 10%がログ記憶容量として確保されています。

. タスクトレーサがログを記録するために必要なメモリ量は次の通りです。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

19
システムコール引数を記録しない場合

ログ 1 個あたり 24 バイト必要(1 MB あたり約 4 万個)

システムコール引数を5 個まで記録する場合

ログ 1 個あたり 48 バイト必要(1 MB あたり約 2 万個)

システムコール引数を10 個まで記録する場合

ログ 1 個あたり 72 バイト必要(1 MB あたり約 14000 個)

システムコール引数を20 個まで記録する場合

ログ 1 個あたり 120 バイト必要(1 MB あたり約 8000 個)∗ ログ 1 個が、1 回のシステムコール呼出/復帰やタスク遷
移、割込に対応します。
• ログ上書き許可
ログ記憶容量を越えてさらにログを記録する場合、上書きを許可しておくと、過去のログを古い順に消去していき、新しいログをメモリ上に残します。つまり古いログが失われることになります。
一方上書きを許可しない場合は、ログ記憶容量を越えたログは記録
せず、それ以前のログをメモリ上に残します。つまり新しいログが失われることになります。

3.3.2

トレース開始/終了

トレースを開始するには トレース開始 ボタン (またはメニューバー →「トレース」→「トレース開始」) をクリックします (図 3.5)。また、ト
レースを終了するには トレース終了 ボタン (またはメニューバー →「トレース」→「トレース終了」) をクリックします。トレースを終了させる
ことにより、記録されたログがグラフまたは表形式で表示されます。

図 3.5

トレースを開始したところ. プログラムの起動直後にトレースを開始するには、あらかじめトレー
ス開始を指定しておいてから、プログラムを起動 (ロード) します。
一方、トレース対象プログラムを起動した後で、任意の時点でトレースを開始することもできます。その場合はプログラムの途中からのトレースになります。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法
3.3.3

20

プログラム内からのトレース指定

上記のボタンやメニュー操作以外に、トレース対象のプログラム内からトレース取り直しとトレース終了を指定することもできます。この機能は、プログラム中の特定の処理に注目してトレースしたい場合に便利です。

• トレース取り直しデバイス "tsktrc" の属性データ番号 -100 に対して 32 ビット整数の 0 を書き込むと、現在までのログを破棄して最初からログを取り直します。

• トレース終了
デバイス "tsktrc" の属性データ番号 -101 に対して 32 ビット整数の 0 を書き込むと、トレースを終了し、それ以降はログの記録を行いません。
以下にプログラム例を示します。

W dd, b, asiz;dd = tk_opn_dev( "tsktrc", TD_UPDATE );b = 0;/* トレース取り直し */tk_swri_dev( dd, -100, &b, sizeof(b), &asiz );..
.
/* トレース終了 */tk_swri_dev( dd, -101, &b, sizeof(b), &asiz );tk_cls_dev( dd, 0 );3.4

トレース結果の表示

トレース終了 ボタン (またはメニューバー →「トレース」→「トレース終了」) でトレースを終了させることにより、記録されたログがグラフ
または表形式で表示されます。

3.4.1

表示モードの切替

画面左下のラジオボタンで、次の 3 通りの表示モードを切り替えて表示できます。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

21(1) 時間グラフ
グラフの横軸のスケールを実際の時間経過に合わせた表示モードです。横軸の 1 目盛りが一定の時間に対応し、横軸方向の長さが実際の時間に比例します。時間の経過の長短がグラフ上で分かりますので、たとえば、どのタスクの処理で時間がかかっているかを把握するのに便利な表示モードです。(図 3.6)

図 3.6

時間グラフ

(2) イベントグラフ
実際の時間経過とは関係なく、システムコール発行や実行タスク遷
移などの「イベント」の回数を横軸の単位として表示するモードです。横軸の 1 目盛りが 1 回のイベントに対応し、実際の時間との対応は一定しません。結果的に、多くのイベントの発生している部分、
すなわちタスク遷移などが複雑な部分を拡大して表示することになります。イベントの順序関係を把握するのに便利な表示モードです。
(図 3.7)

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

22

図 3.7

イベントグラフ(3) イベント表
イベントを発生順に表の形式で表示します。(図 3.8)

図 3.8

イベント表

. 「イベント」という用語について
この説明書では、タスクトレーサのログ収集の対象となる事象を総称して「イベント」と呼んでいます。具体的には「システムコー
ルの呼出と復帰」、「実行タスク遷移 (ディスパッチ)」、「割込ハンドラの開始と終了」の 3 種類を指します。

T-Kernel 仕様書や T-Kernel Extension 仕様書に出てくる「イベント」という用語とは異なる意味ですので、ご注意ください。

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法
3.4.2

23

グラフの見方時間グラフおよびイベントグラフの見方は次の通りです。

• システムコール/拡張 SVC の呼出グラフ上にで示されます。

• システムコール/拡張 SVC からの復帰
グラフ上にで示されます。

• システムコール/拡張 SVC の呼出直後の復帰
グラフ上にで示されます。

• タスク遷移 (ディスパッチ)、および割込ハンドラの開始と終了
グラフ上に

または

で示されます。

• イベント情報ラベル
グラフ上の各イベントに対する情報の一部はラベル (吹き出し) で表示されます。このラベル表示はメニューバー →「表示」→「ラベル表示」で消すことができます。

. ラベルを表示するスペースが狭い場合は、ラベルに表示できる
情報が少なくなります。この場合は、グラフを拡大するか、イベント詳細情報を見てください。
• イベント詳細情報
グラフ上のイベントをクリックすると、ウィンドウ下部にイベントの詳細情報が表示されます。詳細情報を表示しているイベントの位
置は青い縦線で表示されます。

• タスク・割込ハンドラ詳細情報
グラフの左側の縦軸のタスクや割込ハンドラをクリックすると、ウィンドウ下部に詳細情報が表示されます。詳細情報を表示しているタ
スクや割込ハンドラは青い枠で表示されます。

3.4.3

グラフの拡大縮小

画面右下の水平スライダー、もしくはマウスホイールの操作により、グラフの横方向の拡大縮小を行うことができます。
また画面左端の垂直スライダーの操作により、グラフの縦方向の拡大縮小を行うことができます。
タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法
3.4.4

24

タスクや割込ハンドラの表示順の入替

グラフの縦軸のタスクや割込ハンドラの並び順は、標準ではタスク ID
や割込番号の小さい順に上から並んでいます。
この並び順を変更したい場合、グラフの左側の縦軸のタスクや割込ハン
ドラをクリックして詳細情報が表示された状態で、 Shift + ↑ キーまたはShift + ↓ キーを押してください。対象となったタスクや割込ハンドラの表示順を、上下に入れ替えることができます。

3.5

検索

トレース結果 (時間グラフ、イベントグラフ、イベント表) が表示された状態で、メニューバー →「表示」→「検索」でログを検索することができます。
たとえば図 3.9 は検索条件として「タスク ID が 100 のタスクからのtk_wup_tsk の呼出」を指定した場合です。

図 3.9

検索画面

• タスク
検索対象となるタスクを選択します。
「入る」をチェックすると、そのタスクへの実行遷移を検索します。
「抜ける」をチェックすると、そのタスクから他のタスクへの実行遷移を検索します。
「入る」「抜ける」ともチェックしない場合でも、そのタスクの発行するシステムコールは検索できます。

• 割込
検索対象となる割込ハンドラを選択します。
「開始」をチェックすると、その割込ハンドラの実行開始を検索します。
タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

25「終了」をチェックすると、その割込ハンドラの実行終了を検索します。
「開始」「終了」ともチェックしない場合でも、その割込ハンドラの発行するシステムコールは検索できます。

• システムコール
検索対象となるシステムコールまたは拡張 SVC を選択します。
「呼出」をチェックすると、そのシステムコールの呼出を検索します。
「正常」をチェックすると、そのシステムコールからの正常復帰 (戻値が 0 以上) を検索します。
「エラー」をチェックすると、そのシステムコールからのエラー終了 (戻値がマイナス) を検索します。

3.6
3.6.1

ファイル保存
ファイル読込/保存

トレース結果 (時間グラフ、イベントグラフ、イベント表) が表示された状態で、メニューバー →「ファイル」→「保存」を選択すると、ログをファイルに保存することができます。
また、ファイルに保存したログは、メニューバー →「ファイル」→「開く」の操作で読み込むことができます。

3.6.2

ファイル形式

ファイル形式はタブ区切りのテキストです。表計算ソフトなどで読み込んで処理することも可能です。
ファイル形式の詳細は次の通りです。なお、以下の「*」はタブ文字を表します。

(1) 1 行目は次の形式のヘッダです。
保存形式 * タスク数 * 割込数 * イベント数 * ログ喪失

• 保存形式
1: システムコール引数および呼出元アドレスを記録しない
2: システムコール引数および呼出元アドレスを記録する

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

26• ログ喪失0: ログ喪失なし
1: 新しいログが喪失
2: 古いログが喪失(2) 次にタスクおよび割込ハンドラの情報がタスク数+割込数だけ続きます。
• タスク情報0 * タスク ID * プロセス ID * 拡張情報 * 優先度 * アドレス
. プロセス ID は、プロセスに所属しないタスクの場合は 0です。
. 拡張情報は、プロセスに所属しないタスクの場合は exinf、プロセスに所属するタスクの場合はプロセス名 (英数字先
頭 5 文字) です。
• 割込ハンドラ情報
1 * 割込番号 * アドレス(3) 最後にイベント情報がイベント数だけ続きます。先頭の列は ms 単
位の時刻、次の列は ns 単位の時刻のオフセットを示します。3 列目
以降は次の形式です。
• タスク遷移1 * 遷移元タスク ID * 遷移先タスク ID * 遷移元タスク状態• 割込ハンドラ実行開始
2 * 実行中タスク ID * 割込番号
• タスクからのシステムコール呼出と復帰
3 * タスク ID * システムコール機能番号 * システムコール
名 * 戻値 h* 呼出元アドレス * 引数 . . .i
• タスクからのシステムコール呼出
4 * タスク ID * システムコール機能番号 * システムコール
名 h* 呼出元アドレス * 引数 . . .i
• タスクからのシステムコール復帰
5 * タスク ID * システムコール機能番号 * システムコール
名 * 戻値

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

3. 使用方法

27• 割込ハンドラ実行終了
6 * 実行中タスク ID * 割込番号
• 割込ハンドラからのシステムコール呼出と復帰
7 * 割込番号 * システムコール機能番号 * システムコール
名 * 戻値 h* 呼出元アドレス * 引数 . . .i
• 割込ハンドラからのシステムコール呼出
8 * 割込番号 * システムコール機能番号 * システムコール
名 h* 呼出元アドレス * 引数 . . .i
• 割込ハンドラからのシステムコール復帰
9 * 割込番号 * システムコール機能番号 * システムコール
名 * 戻値

タスクトレーサ取扱説明書

c 2013 Personal Media Corporation

28

索引
J

ログ記憶容量 . . . . . . . . . . . . 8, 18

Java . . . . . . . . . . . . . . . . . . . . . . . . 5
わT

T-Kernel/DS . . . . . . . . . . . . 6, 18
T-Kernel/SM . . . . . . . . . . . . . . 18
tracedrv . . . . . . . . . . . . . . . . . . . . 6
tracenet . . . . . . . . . . . . . . . . . . . . . 6
あイベント . . . . . . . . . . . . . . . . . . . 22
か拡張 SVC . . . . . . . . . . . . . . . . . . 18
起動 . . . . . . . . . . . . . . . . . . . . . . . . 8
検索 . . . . . . . . . . . . . . . . . . . . . . . 24
さサスペンド . . . . . . . . . . . . . . . . . 16
システムコール . . . . . . . . . . . . 17
セキュリティ . . . . . . . . . . . 10, 14
た

タスク一覧 . . . . . . . . . . . . . . . . . 16
タブ区切りテキスト . . . . . . . . 25
トレース開始/終了 . . . . . . . . . 19
トレース条件 . . . . . . . . . . . . . . 17
は引数 . . . . . . . . . . . . . . . . . . . . . . . 18
ファイル保存 . . . . . . . . . . . . . . 25
プロセス名 . . . . . . . . . . . . . 16, 26
まメニュー言語 . . . . . . . . . . . . . . 10らロード . . . . . . . . . . . . . . . . . . . . . 15
ログ上書き許可 . . . . . . . . . . . . 19

割込一覧 . . . . . . . . . . . . . . . . . . . 16

T2EX 用タスクトレーサ取扱説明書(T-Engine リファレンスボード用)
パーソナルメディア株式会社
Web: http://www.t-engine4u.com/
E-Mail: te-sales@personal-media.co.jp

Copyright c 2013 by Personal Media Corporation