絶対に理解できないバッファオーバーランがあります(Cで)。まず第一に、それはおそらく 10% 程度の確率でしか発生しません。毎回DBから引き出されるデータは、実行間でそれほど異なるようには見えません...少なくとも、いつ発生するかについて識別可能なパターンを見つけるのに十分な違いはありません。Visual Studio からの正確なメッセージは次のとおりです。
hub.exe でバッファ オーバーランが発生し、プログラムの内部状態が破壊されました。Break を押してプログラムをデバッグするか、Continue を押してプログラムを終了します。
詳細については、ヘルプ トピック「バッファ オーバーランの問題をデバッグする方法」を参照してください。
デバッグすると、コンパイラの /GS フラグからのものであると確信している壊れていることがわかり、__report_gsfailure()
これはヒープではなくスタックでのオーバーランであることも示しています。また、それが終了するときにこれをスローした機能もわかりますが、この動作を引き起こす可能性のあるものは何も見えません。この機能は長い間存在していました (10 年以上、若干の変更はありますが)私が知る限り、これは一度も起こったことはありません。
関数のコードを投稿したいと思いますが、かなり長く、多くの独自の関数/変数/などを参照しています。
私は基本的に、私が探していないものを探しているか、おそらく役立つツールを探しているだけです。残念ながら、私が見つけたほぼすべてのツールは、ヒープでのオーバーランのデバッグにしか役立ちません。私が間違っていない限り、これはスタック上にあります。前もって感謝します。