空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

Debugのテクニック

Windows上で外部 EXE を叩くプログラムのデバッグ時に,引数の受け渡し,環境変数,カレントディレクトリの設定,プロセス間通信など,どこに問題があるのか分からなくてはまる,ということが時々ある。今日職場の先輩から,そんなときに便利な方法を教えてもらった。それはインタラクティブなスタブとして cmd.exe を使うというもの。具体的には,C:?WINDOWS?SYSTEM32?cmd.exe で実行ファイルを置換して,コマンドプロンプト内でその実行ファイルの処理をエミュレートするというもの。cmd.exe をコピーとか考えてみたこともなかったので,ただただ感心するばかりだった。
デバッグというのはどんなにツールは進歩しても永遠に無くならないし,プログラマに職人的な技能が求められ続ける部分だと思う。というのも,ツールがどんどん高度になればなるほど高度で複雑なアプリケーションを組むことが出来るようになり,更に複雑なバグを生むからだ。その解決のためにツールが作られ,人々は更に高度で複雑なものへと挑戦していく。人々がソフトウェアの進歩を追求する限り,このスパイラルは延々繰り返されるだろう。
…なんてことを考えなくても,知っておくとなかなか便利な方法なのでした。