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 を見る。