|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 特異 : [とくい] 1. (adj-na,n) unique 2. singular ・ 異 : [い] (pref) different
特異なバグ () とは、ソフトウェアバグの中でも特に修正が難しいものを言う。いくつかの種類があるが、直感的に理解しがたいような理論を発表した科学者に由来して名前が付いているものが多い。 == ハイゼンバグ (Heisenbugs) == ハイゼンバグは、それを調査しようとすると変貌したり消えたりするバグである。 ハイゼンバグの例: # リリース版では発生するがデバッグ版(-DDEBUGコンパイルオプション等)では発生しない。 # 普通に実行すれば発生するがデバッガなどの環境では発生しない。 # ユーザーの環境では発生するが開発者の環境では発生しない。 # 結合テストでは発生するが同じチェックをしているはずの単体テストでは発生しない。 # 何が起きているのか調べようと出力命令を入れると(いわゆる「printfデバッグ」)発生しなくなる。 # 競合状態によって発生している。 この名前は不確定性原理を提唱したハイゼンベルクのもじり。ここでの不確定性原理とは量子力学用語で「観測すること自体が対象に影響を与えるため正確な観測ができないこと」を指す(これは実際には観察者効果であり不確定性原理ではないが、両者はよく混同される)。 デバッグモードではプログラムの実行前にメモリがクリーンアップされたり、変数がレジスタではなく特定のスタック位置へ配置されたりすることがある。これはハイゼンバグのよくある原因である。またデバッガは、変数の監視等のために、普段実行されないコード(変数アクセサなど)を実行する場合があり、これによってプログラムの状態が変わることも原因となる。他にも、Fandango on core が原因になることもある。その裏には初期化されていない変数が隠れていることが多い。 この言葉が初めて使われたときに同席したという Bruce Lindsay は、これはハイゼンベルクの「ある物事をよく見れば見るほど、他の物事をよく見ることができなくなる」という言葉に由来するとインタビューで述べている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「特異なバグ」の詳細全文を読む スポンサード リンク
|