アレのその後
だが、一つ問題が解決。いやー Windows(というか Cygwin)と Linux でこうも挙動違うとねーあっはっはー。
今回解決した問題点の具体的な再現例。
- まずアプリを起動
- ESC キーで最初に起動したコンソールを閉じる
- 「CTRL+N」で新しいコンソールを起動しようとした瞬間に落ちる
たったこんだけ。ふんがー。
解決策というか問題点。
- どうも元のライブラリで定義されている「今前面に出てるコンソール画面」を「ESC で閉じる(<これはライブラリ内標準動作)」と、「閉じてしまったコンソール」が「なくなってしまった(つまり free された)」にも関わらず「何らかの描画をしようとしてた」のが問題。
- なので、ライブラリ内で「ESC で閉じた」コンソールに NULL を代入。
まあ、たったこれだけで解決。 Linux でも落ちなくなりました。
でもまだ他にも、落ちる原因があるっぽい。↑くらい解りやすい再現手順があれば良いんだけどなあ...。
「valgrind」(<スペル合ってるかな?<調べろよ)の出番かしら。