久々に紙媒体の記事を書いたような気がしますが。
日経ソフトウェア4月号に書いた2本の記事のうちの1本です。
これで攻略! C/C++言語まるごと大特集
の中の以下の記事です。
エラーの原因を探れ! ウラから見たコンパイラ~リンカー~ローダーの仕組み
例外で落ちたアドレスから、ソースコードの上の位置を割り出す手順を、アセンブリ言語などの難しい知識無しで実現する手順を解説しています。
具体的には、マップファイルと、リスティングファイルのシンボル情報とアドレス情報を読み取ったり、絶対アドレスから相対アドレスを計算する手順を説明しています。
この手順が、推理小説的な知的な冒険ドラマとして構成されています。
それらを通じて、コンパイラ、リンカー、ローダーがどういう仕事をしているかも何となく見えてくるような構成になっています。
何もかも統合開発環境に任せきりで、僅かな情報から知力と推理力で問題を解決していく努力が行われにくい最近の開発現場の状況ですが、やはりある程度の基礎力や開発ツールの正しい知識は必要とされます。こういう知識を身に付けるのも悪くないだろう、という気持ちがこもった記事です。
というわけで、ぜひ本屋へ §
日経ソフトウェアは、他の日経を冠した多くの雑誌と異なり、本屋で普通に販売されています。興味のある方はぜひ本屋へどうぞ。2005年2月24日発売です。