Freedos ブートローダーに問題があるようです。(特定の状況では、ブートコードがカーネルを見つけられないようです。)
そのため、gdb を使用して qemu でブートローダーをデバッグしようとしています。いくつかの wiki と無料で入手できるオンライン コースの資料にある指示に従って、qemu を次のように実行します。
qemu-system-i386 -fda fdboot.img -boot a -s -S
そして、このようにgdbを接続します
$ gdb
(gdb) target remote localhost:1234
si
SeaBIOS と思われる最初の 10 から 12 の命令を実行できます。
しかし、それを過ぎて、ブートローダー コードにステップインしようとすると、FreeDos メニュー プロンプトまで、中断することなく実行が継続されます。これにより、実行時に段階的に調べたいブートローダー コードが完全にスキップされます。
ブートローダーをステップスルーするにはどうすればよいですか?
[自分で試してみたい場合は、プロジェクトの Web サイトから freedos フロッピー イメージをダウンロードできます。]