GDB スタブを書いてみよう その3
作業が無駄にならないようにいくつか下調べ。
シンボル
クロスコンパイラで作った Mona 用アプリのシンボルを gdb が読めるか。
(gdb) symbol test/monapi/mutex/TMUTEX.EXE Reading symbols from /home/taro/monaos/mona/test/monapi/mutex/TMUTEX.EXE...done.
読めた。
Serial Port からの読み込み
実装ずみかどうかも忘れた。 Uart クラス発見。というか以前 GDB 対応しようとしてあきらめた形跡が。
qemu の serial port は -serial オプションで指定する。1つ目はログ用に使っているので2つ目を stdio につなげば OK 。
% echo "ABC" | $QEMU -serial file:/tmp/hige.log -serial stdio
Mona 側では
g_console->printf("read from COM2<%c>:", g_com2->readChar())
とすれば読める。
gdb からの接続
qemu の serial port をホストの tcp port に設定。
-serial tcp::43770,server
gdb からは
(gdb) target remote localhost:43770
とすれば良い。Mona の serial port には + という文字が送られてきた。これは GDB の ACK だそうだ。
というわけで下地は準備できたようだ。
次の一手
実際に動いている gdbstub を見る。