2011-10-27 2 views
0

私は現在断続的なバグで戦っています。私はクラスのフロートメンバーを作成します。私はゼロに初期化します。そしてそれに価値を与えてください。この変数は、次のいくつかのプロセスの過程で数回使用されますが、わからないことがあります。その値が実際には小さい値に変更され、プログラムでエラーが発生することがあります。私はコード内の一般的な領域を特定しました。私はコード内にこの変数に作用するものは何もありません。その上に私は同じ正確なプログラムを同じコードで数回実行してコンパイルしますが、このバグは時々だけポップアップします。特定の変数の隣に保存されているものを見つける方法

私は他の配列やポインタのうちの1つが(まだ境界チェックを実装していないために)時々境界から外れていると思っていますが、変数値をそれ自身のものに置き換えています。 XCodeに変数が格納されているかどうかを調べる方法があるかどうか疑問に思っていたので、誰がこの貧しい息子の息子を踏んでいるのかを突き止めることができますか?

+0

valgrindや合理的なようないくつかのプロファイリングツールは、 –

答えて

1

"guard malloc"をXCodeで有効にすることができます。 Guard mallocは、コードが割り当てられた領域の限界を超えて書き込んだかどうかを判断できます。私はそれを可能にする正確な方法はもう分かりませんが、ネット上で何かを見つけることは間違いありません。

+0

XCodeからインストゥルメントを起動すると、このような問題を解決するのに役立ちます。 –

+0

ガードmallocがトリックをしました。ありがとう! – Hanley

0

gdbでコードをデバッグするときにメモリの場所を確認する場合は、watchのブレークポイントを使用できます。

メモリヒープが壊れている可能性があります。 valgrindのようなツールを使用すると役立ちます。

関連する問題