ODE StackOverflow - eiichiromomma/CVMLAB GitHub Wiki

(ODE) Stack Overflow

実行中にStack Overflowでプログラムが終了してしまう場合の対処

Stack Overflowの原因

衝突空間で巨大なマトリクスを生成するため、スタックが足りなくなるらしい。 特にこのエラーはVisual C++の環境で生じやすいらしい。(本家ML)

対策

[プロジェクト]-[xxxのプロパティ]を開き、[構成プロパティ]-[リンカ]-[システム]の以下の2項目を弄る。

  • スタックのサイズの設定
  • -0→10000000(とりあえず)
  • スタックのコミット サイズ
  • -0→10000000(とりあえず)

デフォルトで確保されるスタックのサイズは1MBで、ODEの場合あっという間に使い切ってしまう。 とりあえず10M確保してみる。 コミットサイズは起動時に予約する容量で、起動が遅くなるが、スタックの確保に時間がかからない。