1

私は非常に奇妙なセグメンテーション違反を抱えていましたが、今日最終的に修正しました。問題は、スタックに非常に大きなアレイを割り当てていたため、問題が発生したようです。

私の質問は、スタックオーバーフローで常にSEGV信号を受信しますか?スタックオーバーフローの問題があることを警告する可能性のある特別な信号はありますか?

私はgdbと一緒にg++を使用しています。

4

1 に答える 1

2

Unixシグナルの意味での「シグナル」は明らかにSEGVです。:)何か悪いことが起こっているときにそれを知らせる診断ツールを使用するような信号を意味する場合は、valgrindを試すことができますが、実際には、システムはちょうどあなたに伝えました。また、コンパイル時にスタックがオーバーフローするかどうかを知ることはできません。これは、スタックサイズの制限がランタイムパラメータであるためです。さらに、それが事前に何であるかを知っていれば、次のような問題が発生する可能性があります。停止問題。

于 2012-05-14T00:58:29.180 に答える