デバッガ屋さん泣かせ
過去の話を1つ。
いくつかICEは触ってきたが過去に使ってきたICEの中にTcl/Tkでデバッガの機能を拡張できる機能を持ったものがあった。その当時そのデバッガは私にとって必要な機能を備えていなかったためにTcl/Tkでデバッガを拡張した。そのデバッガの特徴は…
- 全てTcl/Tkで記載
- ARMの逆アセンブル機能もTcl/Tkで記述
- デバッガのUIは一切使わずにデバッグが可能
- メモリダンプやレジスタの変更等の基本的な機能に加えコールスタック解析をdwarfがなくてもある程度実現
- Tcl/Tkでも遅さを感じない応答性
できるものだった。elfのシンボルテーブルくらいはこのツールで読んでたんじゃないかな。ブレークポイントとかはさすがに手動ソフトウエアブレークポイントとかは実装しなかったけどものすごく便利だった。そのうちデバッガ屋さんがボクの不満を解消してソフトウェアに反映してくれるようになったのでこのツールはその時点で役目を終えたのだけど。
てか全部Tcl/Tkで書いたために誰もメンテナンスできなくなってしまった時点でTcl/Tkの限界を感じてしまった。Tcl/Tkの言語仕様はものすごくシンプルで誰が書いても同じ書き方になるし後から読み返しても意味がわかるしいいんだけど、どうしても書かないといけないコードのサイズが大きくなる。という反省からpythonに移っていったという。
今から思うとアホやなぁと思う。でもそれがある事で本当に作業の効率が上がったんだよ。という昔話。