を書かされたときに見つけるために、ウォッチポイントを使用してみてくださいそれ。
そうしないと、あなたはマックを使っている場合は、インスツルメントを使用することができますvalgrindののMassifツール
を使用することができます。それ以外の場合はMassifを試してみてください。 Massif manualからの出力例:
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
--------------------------------------------------------------------------------
10 10,080 10,080 10,000 80 0
11 12,088 12,088 12,000 88 0
12 16,096 16,096 16,000 96 0
13 20,104 20,104 20,000 104 0
14 20,104 20,104 20,000 104 0
99.48% (20,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
->49.74% (10,000B) 0x804841A: main (example.c:20)
|
->39.79% (8,000B) 0x80483C2: g (example.c:5)
| ->19.90% (4,000B) 0x80483E2: f (example.c:11)
| | ->19.90% (4,000B) 0x8048431: main (example.c:23)
| |
| ->19.90% (4,000B) 0x8048436: main (example.c:25)
|
->09.95% (2,000B) 0x80483DA: f (example.c:10)
->09.95% (2,000B) 0x8048431: main (example.c:23)
問題は、スタックオーバーフローした場合のは役立つだろうが、それはここで何が起こっているかのような音はありません。問題の説明では、範囲外の不良ポインタまたは配列インデックスが示唆されています。 –
Macを使用している場合は、Instrumentsを使用できます。そうでなければ[Massif](http://stackoverflow.com/questions/2473438/how-can-i-use-valgrind-for-memory-profile)を試すことができます – Claudiu
私の意見では、スタックのようには聞こえませんオーバーフローするのではなく、その範囲外の配列に書き込んで、隣接する値を上書きしてスタックに配置します。 –