Next: メモリフック, Previous: MICS SH-GDB, Up: Top
SH-GDBでは,gdbプロセスを利用してSHプロセッサの動作をシミュレートします.現在のバージョンでは,リンク済みの単一のバイナリファイルを利用してのシミュレーションのみをサポートしています.SH-GDBでは,次のようにgdbを初期化し,以降siコマンドでプログラムが終了するまで,ステップ実行します.
(gdb)file 指定したファイル
(gdb)target sim
(gdb)load
(gdb)b main
(gdb)run
ローカルに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>
ここでシミュレーションの対象となるファイルには,ローカルのファイルパスを指定します.
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
リモートホストでは,次のように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ライブラリを使用しているので,適切にクラスパスを指定してください.