class hoge
{
void f1();{f2();}
void f2(){/*長い関数*/};

};
このクラスのf1を呼ぶとf2を呼んだあとf2の1行目で落ちます。
デバッグするとアセンブルコードのところで落ちていました。
しかし長い関数の部分を削除してf2の先頭3,4行のコードを残して実行すると落ちません。
おかしいですよね。削除する前は1行目で落ちていたのに、削除したら落ちないんですから。
こんなことは5年の経験で初めてです。
いったい何が原因ですか?