Next: メモリフック, Previous: MICS SH-GDB, Up: Top

## 2 使い方

SH-GDBでは，gdbプロセスを利用してSHプロセッサの動作をシミュレートします．現在のバージョンでは，リンク済みの単一のバイナリファイルを利用してのシミュレーションのみをサポートしています．SH-GDBでは，次のようにgdbを初期化し，以降siコマンドでプログラムが終了するまで，ステップ実行します．

`(gdb)file 指定したファイル
(gdb)target sim
(gdb)load
(gdb)b main
(gdb)run
`

### 2.1 ローカルのgdbプロセスの利用

ローカルにgdbがある場合には，直接そのgdbプロセスをmicsの子プロセスとして起動し使用することができます．その場合には設定ファイルには，次のように要素の定義を記述します．

           <element id="proc0"
                    class="net.wasamon.mics.processor.gdb.SH3"
                    type = "local"
                    target="/home/miyo/a.out"
                    gdb="sh-hitachi-elf-gdb">
             <channel id="bus1" offset="0x08000000"/>
           </element>

ここでシミュレーションの対象となるファイルには，ローカルのファイルパスを指定します．

### 2.2 リモートのgdbプロセスの利用

SH用のGDBを用意することが困難な場合リモートにあるGDBプロセスとXML-RPCを利用して通信することで，MICSエレメントとしてgdbを利用することができます．ホスト側では専用のサーバプログラムを実行する必要があります． MICSでのシミュレーション要素の定義を次に示しています．

           <element id="proc0"
                    class="net.wasamon.mics.processor.gdb.SH3"
                    type = "xmlrpc"
                    target="l:\a.out"
                    gdb="sh-hitachi-elf-gdb">
             <channel id="bus1" offset="0x08000000"/>
           </element>

ここでシミュレーションの対象となるファイルには，ローカルのファイルパスを指定します．MICSでは，XML-RPCで対象となるファイルをリモートのサーバに転送し，実行してもらいます．

また，gdbを起動する対象となるホストと通信に利用するポート番号を，次のように起動時にシステムプロパティnet.wasamon.xmlgdb.hostとnet.wasamon.xmlgdb.portで設定する必要があります．

`java -Dnet.wasamon.xmlgdb.port=8192\
-Dnet.wasamon.xmlgdb.host=192.168.5.169\
-jar mics.jar`

#### 2.2.1 GDBサーバの起動

リモートホストでは，次のようにGDBサーバをあらかじめ起動しておく必要があります．実行の方法を次に示します． `java -Dnet.wasamon.xmlgdb.port=8192\
-cp mics.jar:lib/commons-codec-1.3.jar:lib/xmlrpc-2.0.1.jar net.wasamon.xmlgdb.GdbServer` クライアントと同様に，システムプロパティnet.wasamon.xmlgdb.portでポート番号を指定する必要があります．また，XML-RPCには，Apacheのxml-rpcライブラリを使用しているので，適切にクラスパスを指定してください．