IA32のフリースタンディング・デバッグ環境

monamour555さんのBlog。x86はwinやLinuxデバッグ環境が強力だけど、組み込みは貧弱って話。

Win32とLinux*1の普及による,影の部分ですね.フルスペックのOSでは,カーネルデバッガ使えちゃいますからね.おかげで,フリースタンディングでの大規模組込みアプリは極めて作りづらいな,と.

ふとTurbo Debuggerが出たころのPhilippe Kahn*1のインタビューを思い出しました。初代Turbo Debuggerは、PC-DOSで動いていました。で、PC-DOSには640KBの壁がありましたし、高級言語化でアプリサイズが肥大しいたころでもあり、大きなアプリの場合、デバッガを共存させることができませんでした*2
ところが、Turbo Debuggerにはシリアル・デバッガが付いていました。これはデバッグ用のスタブのみをアプリと働かせ、デバッガ本体は別のコンピュータで働かせるというものです。これが大ヒットしたのですが、Borland内部のデベロッパがこぞって2台目のPCを要求するので大変、という話でした。この後、Turbo DebuggerはDOSアプリを仮想DOSモードで動かすDOS-Externderアプリになっていきます。同時期にTurbo PascalやTurbo Cも同じ道を歩みます。
gdbによるフリースタンディング環境のデバッグも似たようなものだと思ったしだいです。

*1:Borland創始者

*2:今となってはターゲットにデバッギをロードするなんて、組み込みエンジニア以外は忘れつつある概念かもしれない