ページ 11

プログラム終了時のエラーについて

Posted: 2012年7月01日(日) 02:58
by コレジャナイ
ご無沙汰しております。

そろそろ時期かなと思いマップツールを製作しました。
これ自体は本体のプログラムから色々関数を拝借してささっと作れたのですが、友人に渡そうとリリースデバッグした際、プログラム終了時にエラーで強制終了を起こしてしまいます。

原因は~~読み込み中にアクセス違反で恐らく添え字に想定外の値が入り込んでしまったのかなと思っています。

普通のアクセス違反エラーの時であればデバッグしていると想定外の値が入り込んだ関数で処理が止まるなど、原因がある程度判別出来ます。
しかし今回はブレークポイントを設置して潜ってみましたが、DxLib_Endを通過後も正常、return 0を返した後だいぶ潜ってからエラー箇所に遭遇しました。


このため原因がよく分からず少々困っております。

少々というのは、
デバッグモード時では問題なく作動する
リリース時でもエラーは終了時限定のため、本来の機能(マップを組み立てて、そのデータを外部に出力する)は充分果たせてしまう
そもそもリリースして誰かに見せる機会がほとんど無いような・・・?

といった感じで、そこまでゲーム製作に差し障ってはいない状態です。

しかしエラーを放置しておくと気になってしまうのと、もし同様のエラーが本体の方で発生した場合の対処法をしっかり理解しておきたいために、今回質問させて頂きましたm(_ _)m


何かプログラム終了時に発生するような特有のエラー原因などありますでしょうか?

もし一般的なエラーでない場合は、かなり恥ずかしいですがソースコードなどの提示も考えております。
(ソースファイルなど全て合わせて1000行弱のプログラムなので、かなり汚く書いておりますが、何とか解読可能な範疇に収まっているかと思います。)

何卒宜しくお願いしますm(_ _)m

Re: プログラム終了時のエラーについて

Posted: 2012年7月01日(日) 03:03
by h2so5
1000行程度であれば、まずエラーが出ない状態になるまでソースをコメントアウトして、
少しずつコメントを外しながら実行していけば原因が分かるかもしれません。

Re: プログラム終了時のエラーについて

Posted: 2012年7月01日(日) 03:21
by コレジャナイ
>>h2so5さん
返信有難う御座います。
おっしゃる通りコメントアウトの方式でデバッグした所、原因が判明し見事解決致しました。
(defineしていたマス構造体配列の最大値を越える値が添え字として入ってしまっていた事が原因でした。
 マップツールではBANPEIの部分も描画していたため本体では発生せず、マップツールのみこのような現象が起こってしまったみたいです・・・orz)

有難う御座いましたm(_ _)m