を使用していくつかの配列インデックスが計算される大規模な C ライブラリを使用してint
います。問題のあるコード行に絞り込むような方法で、実行時に整数オーバーフローをトラップする方法を見つける必要があります。libc マニュアルには次のように記載されています。
FPE_INTOVF_TRAP 整数オーバーフロー (ハードウェア固有の方法でオーバーフロー トラップを有効にしない限り、C プログラムでは不可能)。
ただし、gcc オプション-ffpe-trap
は、それらが FP 番号にのみ適用されることを示唆していますか?
では、整数オーバーフロー トラップを有効にするにはどうすればよいでしょうか。私のシステムは Xeon/Core2、gcc-4.x、Linux 2.6 です。
私は同様の質問に目を通しましたが、それらはすべてコードの変更に沸騰しています。ただし、そもそもどのコードに問題があるかを知る必要があります。
Xeon がオーバーフローをトラップできない場合、どのプロセッサがトラップできますか? emt64 以外のマシンにもアクセスできます。
その間、llvm 用に設計されたツールを見つけました: http://embed.cs.utah.edu/ioc/ しかし、gcc/icc に相当するものはないようです。