SSブログ

検死デバッグ(postmortem debugging) [プログラマー現役続行]

ビューティフルコード

ビューティフルコード

  • 作者: Brian Kernighan
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2008/04/23
  • メディア: 大型本

本書は、33名のソフトウェア開発者による美しいコードというテーマで執筆してもらったものをまとめたものです。その中の第22章「スプーン一杯の汚水で」は、1999年にSolarisカーネルの重要なサブシステム開発中に起きた問題とその解決の過程について説明されています。

問題を調査するためのデバッグの過程で、生きて実行中のシステムをデバッグする「その場デバッグ」(in situ debugging)とは対照的な「検死デバッグ」(postmortem debugging)を用いたという説明があります。そして、それは次のように重要なスキルだと述べられています。
どんなソフトウェアエンジニアにとっても重要なスキルは、複雑なソフトウェアシステムの失敗を解析し、その解析を厳密に表現できる能力です。そして十分複雑なシステムではしばしば、失敗の解析は法医学的です--つまり、システムが失敗したときの状態のスナップショットに基づきます。実際のところ、そのような状態のスナップショットはデバッグの基本中の基本であるため、コンピュータの黎明期以来、ある決まった名前でよばれています。「コアダンプ」。
(途中省略)
さらに、検死デバッグではいろいろ試すような選択肢が少ないため、可能性やその検証についてより厳密に考える必要があることから、検死デバッグで能力を磨けば、その場デバッグも効率よく行えるようになります。
(途中省略)
つまり、検死デバッグは我々の能力の本質的な一部分であり、ソフトウェアエンジニアのプロであれば誰でも持つべき能力なのです。
マルチスレッド環境での検死デバッグでは、高い能力を求められます。実際に経験して、きちんと問題を解析・解決する経験を積めば、その能力も向上していきます。私自身も、1993年に米国駐在から帰ってきた後に従事したプロジェクトでは、マルチスレッドの大規模なシステムのコアダンプをよく「検死デバッグ」したものです。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0