
OS:WindowsXP
コンパイラ: MinGW gcc 3.3.3
gccで、スタックオーバーフローの検出を行いたいと思っています。
gcc -v --helpで見ると
> -fstack-check Insert stack checking code into the program
と書かれているので、そのように指定して、無限に自分を呼び続ける再帰のプログラムを走らせてみました。
gcc -fstack-check testS2.c
ですが、オプションを指定しない時と同じように突然何の前触れもなく終了してしまいます。
このオプションはスタックを使い切るかどうかをチェックするオプションではないのでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ソースコードを静的に解析してスタックオーバーフローを事前に検知するオプションではなく
生成するプログラムにスタックオーバーフローを検知するプログラムを紛れ込ませて
もし、スタックオーバーフローが起きたらプログラムを強制終了するというオプションだと思いますよ。
> Insert stack checking code into the program
説明として書いてありますしね。
WEB上から拾ってきた文献から察するに、マルチスレッド環境でスタックオーバーフローが
起きた際に正常にプログラムを強制終了させるためのオプションのようです。
シングルスレッドの場合はシステムが強制終了してくれるのでこのオプションをつける必要はないとも書いてありますね。
http://uw713doc.sco.com/cgi-bin/info2html?(gcc)C …
コンパイラに実装されているオーバーフロー関連のチェック機能は
仮にオーバーフローが起こっても安全にプログラムを終了させるような
プログラムコードをコンパイル時に追加する手法が多いです。
(オーバーフローが起こったままプログラムが動作するのはとても危険です。
まじめに検知したいなら静的解析の専門ツール探した方が良いと思いますよ。
Splint
http://lclint.cs.virginia.edu/
ありがとうございます。
説明が悪くて申し訳ありませんでした。
実際にコンパイルして実行しているのですが、そのときにオプションをつけてもつけなくても同じ結果だった、という意味でした。
ご回答からその理由がシングルスレッドだからだということがわかりました。(もっとも、メッセージの一つも出してほしい気はしますが、、これではスタックオーバーフローだから終了したかどうかわからないので。。)
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2013からADP廃止
-
無限ループ中にある任意のキー...
-
プログラムの課題が解けません...
-
世界一美しいソースコード
-
vba listviewにおけるtextのAli...
-
三次元のグラフを書きたいので...
-
マイコンからプログラムを読み...
-
プロダクションコードとは?
-
Arduino nano(アルドゥイーノ ...
-
任意ソフトのテキストボックス...
-
Macターミナルで実行中のプログ...
-
家電製品の電力周波数を変える機械
-
TCP/IP通信時のサーバーからの受信
-
タスクマネージャーのプロセス...
-
このレジの並び方は間違ってま...
-
InternetOpenUrlの引数URL文字...
-
実行時のコマンドプロンプトを...
-
ボタンが押された事を検知する...
-
h8マイコンで AD変換ができ...
-
割り込みの衝突
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba listviewにおけるtextのAli...
-
指定したフォルダーを最前面表...
-
マイコンからプログラムを読み...
-
初級者の質問――time_tについて
-
2値化した画像の黒い部分のピク...
-
プロダクションコードとは?
-
gccでスタックオーバーフローの...
-
Arduino nano(アルドゥイーノ ...
-
世界一美しいソースコード
-
expectを使用しない対話型処理
-
C言語で1000までの素数を求める...
-
c言語 コマンドライン引数
-
Ofの使い方
-
COBOLのS9タイプからXタイプへ...
-
winsockを使った通信方法
-
無限ループ中にある任意のキー...
-
通信ゲームを作りたいんですが
-
デュアルCPUでのプログラミング...
-
HPBが立ち上がらない
-
遠方界のプログラム
おすすめ情報