Muttertier @n rabenmutter liebsch mestrovic in lauterbach, hessen 25.05.2012
Training Simulator and Demo Software2 ©1989-2018 Lauterbach GmbH...
Transcript of Training Simulator and Demo Software2 ©1989-2018 Lauterbach GmbH...
Training Simulator and Demo Software
Version 22-Mar-2018
目次
About the Demo .......................................................................................................................................... 1
Starting the TRACE32 Simulator .............................................................................................................. 1
User Interface - TRACE32 PowerView ..................................................................................................... 2
Program Listing and Program Counter ................................................................................................ 2
TRACE32 Commands ............................................................................................................................. 3
TRACE32 Command Line and Softkeys .............................................................................................. 3
Single Stepping ....................................................................................................................................... 4
Window Captions - What makes them special in TRACE32 .............................................................. 5
Memory ........................................................................................................................................................ 7
Displaying Memory ................................................................................................................................. 7
Modifying Memory .................................................................................................................................. 8
Debugging the Program ......................................................................................................................... 9
Displaying the Nesting of Functions .................................................................................................. 12
Breakpoints ............................................................................................................................................... 13
Setting Software Breakpoints ............................................................................................................. 13
Listing all Breakpoints ......................................................................................................................... 14
Setting a Program Breakpoint to Any Code Line within a Function ............................................... 15
Setting a Spot Breakpoint.................................................................................................................... 16
Adding a Watch on a Variable ............................................................................................................. 17
Removing Breakpoints ........................................................................................................................ 18
HLL Variables ........................................................................................................................................... 19
Displaying HLL Variables .................................................................................................................... 19
Displaying HLL Variables of the Current Program Context ............................................................. 20
Using the Symbol Browser .................................................................................................................. 20
Formatting HLL Variables .................................................................................................................... 21
Modifying Variables .............................................................................................................................. 22
1 ©1989-2018 Lauterbach GmbH
About the Demo
このTRACE32 チュートリアルでは、Cの簡単なサンプルプログラムを用いて最も重要なデバッグ機能を説明
すると同時に、使用に役立つ多くのヒントとコツを紹介します。所要時間は0.5〜1時間で、すべての章を順
番に通して作業します。評価版のTRACE32シミュレータを以下のリンクからダウンロードすることで、ハー
ドウェアが無くても、直ぐにセッションを開始することができます。(例:Simulator for TriCore)
ダウンロード: https://www.lauterbach.com/frames.html?download_demo.html
より詳しい情報は、以下のページ内に公開される「日本語トレーニングマニュアル」をご参考ください。
https://www.lauterbach.com/frames.html?training_j.html#_H2
Starting the TRACE32 Simulator
1.ダウンロードしたファイルを解凍します。TRACE32シミュレータをインストールする必要はありません。
2. t32m <アーキテクチャ> .exeファイル(例:t32mtc.exe)をダブルクリックして、デモデバッグセッショ
ンを開始します。
例:Simulator for TriCore(simtc.zip)の中身
TRACE32命令セットシミュレータ(Instruction Set Simulator)が起動すると、デバッグセッションを設定す
る起動PRACTICEスクリプトが自動的に実行されます。Fileメニュー> Run Scriptの順に選択して、同じ起動
PRACTICEスクリプト(t32.cmm)を手動で実行することもできます。
2 ©1989-2018 Lauterbach GmbH
PRACTICE(Lauterbachスクリプト言語)は、テストの自動化、TRACE32 GUIの設定、およびデバッグ環境
の設定に使用されます。
このデモデバッグセッションでは、PRACTICE起動スクリプト demo.cmm がアプリケーションプログラム
demo.elf をロードし、ロードされた情報からTRACE32内部シンボルデータベースを生成します。
デフォルトでは、TRACE32は起動時にt32.cmmスクリプトを実行します。
User Interface - TRACE32 PowerView
TRACE32のグラフィカルユーザーインターフェース(GUI)は、TRACE32 PowerViewと呼ばれます。下の
スクリーンショットを参照してください。例として、Data.List コマンドとData.List ウィンドウを使用し
て、GUIについて簡単に説明します。
Program Listing and Program Counter
以下のいずれかの操作を行って、Data.Listウィンドウを開きます。
•Viewメニュー> List Sourceを選択する
•または、TRACE32コマンドラインで、Data.List(またはD.LまたはList)と入力する
Data.List(= List)ウィンドウに、アセンブラニーモニックとHLLのコードが表示されます。
Data.Listウィンドウで、灰色のバーはプログラムカウンタ(PC)の位置を示します。現在、それはラベル
mainのシンボリックアドレスにあります。 これは、次のように、プログラムカウンタ(PC)が起動用の
PRACTICEスクリプトで指示されているためです。
;Set CPU register Program Counter (PC) to the address of the label main.
Register.Set PC main
3 ©1989-2018 Lauterbach GmbH
TRACE32 Commands
TRACE32 PowerViewでは、様々な方法でコマンドを実行できます。
1.メニューバーのメニュー
2.メインツールバーのボタンとTRACE32ウィンドウのツールバーのボタン
3. TRACE32ウィンドウのコンテキストメニュー
さらにTRACE32コマンドラインとその下のソフトキーを使用してコマンドを実行できます。
TRACE32 Command Line and Softkeys
TRACE32コマンドでは大文字と小文字が区別されません。register.viewはRegister.viewと同じです。
大文字はコマンドの短い形式を示し、省略してはいけません。 小文字はすべて省略できます。 これによ
り、コマンドラインで頻繁に使用されるコマンドを入力するときに、短縮形が効率的な時間節約になりま
す。 例:
•長い形式のRegister.viewの代わりに短い形式のrまたはRを入力する
•長い形式のData.Listの代わりに、短い形式のd.lまたはD.Lだけを入力します。
ソフトキーはコマンドラインの下にあります。ソフトキーのキャメルケース(大文字と小文字)は、長い形
式のコマンドを示しています。 ソフトキーはコマンド入力をガイドし、すべての可能なコマンドとパラメー
タを表示します。
例 - ソフトキーを使用してData.dumpコマンドを作成する
1.Data をクリックします。
2.dump をクリックします。
3.ダンプする<範囲>または<アドレス>を入力します。 たとえば、0x1000--0x2000
4. [OK]をクリックしてコマンドを実行します。 Data.dumpウィンドウが開きます。
4 ©1989-2018 Lauterbach GmbH
Single Stepping
基本的なデバッグコマンドは、Runメニュー、Data.Listウィンドウのツールバー、メインツールバー、そし
てTRACE32コマンドラインから利用できます。
シングルステッピング は基本的なデバッグコマンドの1つです。
TRACE32は、より複雑なデバッグ制御コマンドも提供します。例えば、式が変更されるかtrueになるまで実
行またはステップ実行できます。
例:Var.Step.Till vchar>11. 変数 vchar が11より大きくなるまでプログラムをシングルステップ実行しま
す。末尾のドットは非常に重要です。 11を10進数としてフォーマットするのはドットです。
(注:vchar >11.は、 vchar > 0xBと同等です)
5 ©1989-2018 Lauterbach GmbH
Window Captions - What makes them special in TRACE32
ウィンドウを開くときのコマンドはウィンドウキャプションとして表示されます。 パラメータとオプション
もウィンドウキャプションに含まれています。
コマンドを修正するために、ウィンドウキャプションからコマンドラインにコマンドを再挿入できます。
Registerウィンドウで同様の操作を行いましょう。
1. ViewメニューからRegisterを選択します。
2.ウィンドウキャプション(a)を右クリックします。
3.コマンドを変更します。例: /SpotLight オプションを追加して、変更されたレジスタを強調表示しま
す。
6 ©1989-2018 Lauterbach GmbH
4. [OK]をクリックして変更したコマンドを実行します。
5. TRACE32ツールバーのシングルステップ をクリックします。 変更されたレジスタはすぐに強調表
示されます。
7 ©1989-2018 Lauterbach GmbH
Memory
Displaying Memory
1. Data.dumpウィンドウにメモリダンプを表示するために、以下のいずれかを実行します。
- ViewメニューからDumpを選択します。
- またはツールバーのMemory Dumpをクリックします。
- または、TRACE32コマンドラインで「Data.dump」と入力します。
アドレスやシンボルを直接指定することもできます。例:Data.dump main++0x30
2. Data.dumpダイアログで、データ項目を入力します。 例:main
- または、HLLチェックボックスをオンにて、シンボルデータベースをクリックして参照します。
3. Browse Symbolsウィンドウでシンボル(例:flags)をダブルクリックして、OKをクリックします。
8 ©1989-2018 Lauterbach GmbH
下図は、Data.dumpウィンドウがTRACE32コマンドラインを介して呼び出されている様子です。
アドレス範囲を定義する方法はいくつかあります。
• <start_address>--<end_address>
Data.dump D:0x5530--D:0x554F ;D: is a memory class specifier
• <start_address>++<offset>
Data.dump str2++20. /Byte ;start at str2 plus the next 20 bytes
Data.dump str2--(str2+20.) /Byte ;alternative to previous line
Modifying Memory
1. Data.dumpウィンドウで、変更したい値をダブルクリックします。
選択したアドレスに対するData.Setコマンドがコマンドラインに表示されます。 コマンドの短縮形は
D.Sまたはd.sです。
2. コマンドラインに表示されたコマンドの後に値を入力し、OKで確定します。
9 ©1989-2018 Lauterbach GmbH
Debugging the Program
1. ViewメニューからList Sourceを選択します。
Data.Listウィンドウが開き、現在のプログラムカウンタ周辺のプログラムリストが表示されます。
2.プログラムをシングルステップ実行するには、次のいずれかを実行します。
- Runメニュー> Stepを選択します。
- またはF2を押します(Runメニューのファンクションキーを参照)。
- またはTRACE32ツールバーのSingle Stepをクリックします。
- または、Data.ListウィンドウのStepをクリックします。
- または、TRACE32コマンドラインで、Step を入力します。
10 ©1989-2018 Lauterbach GmbH
3. TRACE32メインウィンドウの下部にある状態行を見てください。
state行の内容:
A アクティブウィンドウ内の現在のカーソル位置の(シンボリック)アドレス。現在のカーソル位置は青
で強調表示され、プログラムカウンタ(PC)は灰色で強調表示されています。
B デバッガの状態:stopped アプリケーションプログラムが停止している状態であり、メモリの参照や
変更などができます。
C 現在選択されているデバッグモードが表示されます。コード表示は、HLL(高水準言語)、ASM(アセ
ンブラ)、またはHLLとそれに対応するアセンブラニーモニックのMIXモードになります。
4. Data.Listウィンドウのツールバーで、ModeをクリックしてデバッグモードをHLLに切り替えます。
11 ©1989-2018 Lauterbach GmbH
5. をクリックします。
ここで行っているのは、次のHLL行への高級言語レベルのステップ実行です。
6.もう一度 をクリックして、デバッグモードをMIXに切り替えます。
7. をクリックします。今回は、1つのアセンブラ行が実行されます。
8.コード行を右クリックして、Go Tillを選択します。 プログラムの実行が始まります。 プログラムが選
択されたコード行に達すると停止します。
12 ©1989-2018 Lauterbach GmbH
Displaying the Nesting of Functions
次の例では、関数のネストがあるとします。main()がfunc2()を呼び出し、func2()がfunc1()を呼び
出します。
Varメニュー> Show Stackを選択します。 Frame.viewウィンドウに関数の入れ子が表示されます。
・/Localsオプションは、各関数のローカル変数を表示します。
・/Callerオプションは、関数が呼び出された場所を示すために、いくつかのCコード行を表示します。
上記のネストと呼び出しのシーケンスを下図に示します。
13 ©1989-2018 Lauterbach GmbH
Breakpoints
ブレークポイントは最も頻繁に使用されるデバッグ機能の1つです。
Setting Software Breakpoints
primzとanzahl ++にブレークポイントを設定しましょう
1.コード行をダブルクリックしてプログラムブレークポイントを設定します。
2.コードリテラルではなく、必ずコード行の空白をクリックしてください。
プログラムブレークポイントを持つすべてのコード行は、赤い縦線でマークされています。
14 ©1989-2018 Lauterbach GmbH
Listing all Breakpoints
1. Breakメニュー> Listを選択して、すべてのブレークポイントを一覧表示します。
Break.Listウィンドウが開き、既存のブレークポイントの概要が表示されます。
A:ブレークポイントの16進数アドレス
B:ブレークポイントタイプ
C:ブレークポイントの実装:SOFTware、ONCHIP、またはDISABLED
Data.Listウィンドウの灰色のバーは、無効なブレークポイントを示します。
D:ブレークポイントのコード行。 例:
•func2¥6は、func2のHLL行6を意味します。
•func2¥13+0x8は、func2 + 8バイトのHLL行13を意味します。
(デバッグモードMIXでのみ有用)
2.ツールバーのGo をクリックしてプログラムの実行を開始します。
3.プログラムがブレークポイントに達していない場合は、Break をクリックしてプログラムの実行を停
止します。
15 ©1989-2018 Lauterbach GmbH
Setting a Program Breakpoint to Any Code Line within a Function
関数sieve()でブレークポイントをanzahl = 0に設定しましょう。
1. Varメニュー> Show Functionを選択します。
sYmbol.Browse.Functionウィンドウが開きます。
2. sieveをダブルクリックします。
Data.Listウィンドウが開き、sieveが表示されます。
3.コード行の空白をダブルクリックしてブレークポイントをanzahl = 0に設定します。
ブレークポイントを示す赤い縦線がData.Listウィンドウに表示されます。
4. Breakメニュー> Listを選択して、すべてのブレークポイントを一覧表示します。
Break.Listウィンドウが開き、既存のブレークポイントの概要が表示されます。
16 ©1989-2018 Lauterbach GmbH
Setting a Spot Breakpoint
スポットブレークポイントは、表示されているすべての情報を更新するためにプログラムの実行を短時間停
止してからプログラムの実行を再開する監視ポイントです。
変数 primz にスポットブレークポイントを設定しましょう。
To set a spot breakpoint:
1. 変数primz のコード行の空白部分を右クリックし、Breakpoints > Spotを選択します。
スポットブレークポイントが設定されると、黄色の線の付いた赤い垂直バーがData.Listウィンドウに表示さ
れます。
2. Breakメニュー> Listを選択して、すべてのブレークポイントを一覧表示します。
Break.Listウィンドウが開き、既存のブレークポイントの概要が表示されます。
17 ©1989-2018 Lauterbach GmbH
Adding a Watch on a Variable
プログラムの実行中に、変数 anzahl のすべての変更を監視しましょう。
前提条件:変数primzにスポットブレークポイントを設定した状態。
1.変数 anzahl を右クリックし、Add to Watch Windowを選択します。
2. Data.Listウィンドウで、Goをクリックしてプログラムの実行を開始します。
プログラムの実行中に、Var.Watchウィンドウで変数 anzahl の変更を見ることができます。
18 ©1989-2018 Lauterbach GmbH
Removing Breakpoints
ブレークポイントを削除するには、マークされた行をダブルクリックするか、Break.Listウィンドウでブレ
ークポイントを切り替えます。
Training Simulator and Demo Software 18
19 ©1989-2018 Lauterbach GmbH
HLL Variables
Displaying HLL Variables
変数flags、def、およびastを表示しましょう。
1. Varメニュー> Watchを選択します。
Var.AddWatchウィンドウが開き、シンボルデータベースにロードされたHLL変数が表示されます。
2. HLL変数flagsをダブルクリックします。
Var.Watchウィンドウが開き、選択したHLL変数が表示されます。
3. Var.Watchウィンドウから直接アクセスする
- Var.Watchウィンドウで、Watchをクリックし、次に変数defとastをダブルクリックしてVar.Watchウ
ィンドウに追加します。
- Data.Listウィンドウから、Var.Watchウィンドウに必要な変数をドラッグアンドドロップします。
- Data.Listウィンドウで任意の変数を右クリックして、コンテキストメニューからAdd to Watch
windowを選択します。
- 複雑な構造や配列を別のウィンドウに表示したい場合は、Varメニュー> Viewを選択します。
20 ©1989-2018 Lauterbach GmbH
Displaying HLL Variables of the Current Program Context
1. TRACE32コマンドライン入力から、プログラムカウンタ(PC)をsieve()に設定します。
Register.Set pc sieve ;The command short form is: r.s pc sieve
2. Varメニュー> Show Current Varsを選択します。
Var.REFウィンドウが開き、現在のプログラムコンテキストによってアクセスされているすべての変数が
表示されます。
3. TRACE32ツールバーの Stepをクリックして、いくつかのステップ実行をします。
Var.REFウィンドウは自動的に更新されます。
Using the Symbol Browser
シンボルブラウザは、現在シンボルデータベースに格納されている変数、関数、およびモジュールの概要を
提供します。
1. Varメニュー> Watchを選択します。
Var.AddWatchウィンドウでは、シンボルデータベースの内容を閲覧できます。
2. Var.AddWatchウィンドウで、func2をダブルクリックします。
21 ©1989-2018 Lauterbach GmbH
Formatting HLL Variables
HLL変数の表示をフォーマット設定する - グローバル設定:
1. Varメニュー> Formatを選択します。
2. SETUP.Varウィンドウで設定を行います。 10進数と16進数は便利なグローバル設定です。
その後で開いたすべてのVar.viewウィンドウに設定が適用されます。
個々のHLL変数の表示をフォーマットするには、以下のようにします。
1.コマンドラインで次のように入力します。Var.view ast(変数astはこのデモに含まれています。)
2. Var.viewウィンドウでastを右クリックし、Formatを次にクリックします。
Change Variable Format ダイアログが開きます。
3. Typeチェックボックスをオンにして、完全な型情報を使用して変数astをフォーマットします。
4. Applyをクリックします。 Var.viewウィンドウのastのフォーマットはすぐに更新されます。
5.より複雑なHLL構造の場合は、Change Variable FormatダイアログボックスでTREEを選択します。
22 ©1989-2018 Lauterbach GmbH
Modifying Variables
1.変数値をダブルクリックして値を変更します。 Var.setコマンドがコマンドラインに表示されます。 コ
マンドの短縮形はVまたはvです。
2.等号(=)の直後に新しい値を入力し、[OK]で確定します。