今作ってるプログラムのソースコードが10000行を越えて萎え気味のCINGですよ。
全く持ってめんどくさい…全てはウチのソフトに関係するとある法律の改正がいかんのじゃー!
あと、とあるシステムの単体テストをしていたら、見たことないエラーに遭遇。
「スタック領域が不足しています」だってさ。おっかしいなぁ、無限ループはしてないハズだし、ローカル、グローバル変数の領域も充分にあるハズだし…。
デバッグモードでプログラムを追っていたら、原因発見。
とある条件下の元で実行すると、ある部分が幾つもの関数を通ってさらに再帰呼び出しをしまくっている事が判明。
どう見てもスタックオーバーフローです。
本当にありがとうございました。
これを回避する為、ブール型変数を1個作り、ある条件でフラグを操作する事によって対処。
実はこのプログラムを作る際にこのフラグを作ろうか迷ったんだが、ルーチンが複雑化するかと思ってやめた。
しかし実際はその逆だった。こうする事によってエラーが直ったどころか、より完成に近い形となった。
プログラムってのは何でも試さないのいかんね。脳内でアルゴリズム組んでも想定外の流れになる場合もあるし。
今日のエラーは勉強になりますた、ハイ。
上記のプログラムとは関係無いが、80行もあるSQL文ってやっとれんな…。
もっと短くする事も出来るんだが、これ以上短くすると横スクロールバーが出てくるので見にくくなる。
自分で作っといてなんだが、幾つものテーブルを結合するともうワケ分からん…。