あるプログラムをデバッグしていたら、なぜか、あるスタティックで定義した
関数が表れない。シンボルどころかスタックトレースにも表れない。

何故か判らずに、gcc/gdbのバージョンをいろいろ変えてみて、どうもgcc-4.1
が原因らしい。

-g回りのオプションが増えているので、これかと思っていろいろやってみるが
 うまくいかない。

デバッグ情報が入っていないのをobjdumpで確認中に、objedump -Sで見てみる
と…

そのソース部分に、なんのコードもない。

その関数は、一箇所からしか呼ばれていない。最適化されすぎていて、呼ばれ
ている場所に埋め込まれていたのだ。

ローカス変数が見えないことなどは、ざらにあったのだが、関数まるごと消え
ているのは初めて。

変数スコープはどうなっているのかよくわからない。その関数がどういう引数
で呼ばれているのかも表示しかたが判らない。何をどう確認してよいのか、さっ
ぱり判らない。

13時間ほど悩んだ。

オプティマイズも良し悪しである。

-- 
   ___     わしは、山吹色のかすてーらが大好きでのぅ
 [[o o]]            ふぉっふぉっふぉ
   'J'     森下 お代官様 MaNMOS 英夫@ステラクラフト
PGP Finger = CD EA D5 A8 AD B2 FE 7D  02 74 87 52 7C B7 39 37