1

非常に奇妙な動作をするコードがいくつかあります。私の出力が実際には起こっていないと非難する奇妙な十分な人々がいます(それが私の人生を楽にしてくれることを願っています)。コードは Windows (ms vc++、gcc) では正常に動作しますが、Linux (gcc、clang) では失敗します。

私は現在コンパイルしていますg++ -g -std=c++0x -Wall -c file.cppが、それよりも安全なものはありますか? ああ、この segfaults (Linux の場合) は警告が表示されなくても...

4

1 に答える 1

3

Seg fault は、ヒープの破損などのランタイム エラーを示します。どのようなコンパイル オプションを使用しても、考えられるすべての実行時エラーや問題を把握するのに役立つわけではありません。

つまり、gcc オプションのセットにはcatch-all-errorsオプションはありません。

静的アナライザーや valgrind などのツールを使用するか、segfault が発生したコードを調べることができます。

于 2012-11-10T01:05:19.510 に答える