6

アボート トラップ (エラー コード 12) で失敗するプログラムを実行しています。エラーをデバッグするために valgrind を実行していますが、実行するたびに valgrind 自体がクラッシュし、「Kill​​ed」メッセージが表示され、他には何も表示されません (終了メッセージのヒープの概要などは表示されません)。これについてGoogleやSOで何も見つけることができません。誰かがこのエラーの原因とデバッグ方法を明らかにしてくれることを願っています。

どんな助けでも大歓迎です!

4

2 に答える 2

6

あなたのプロセスはおそらくカーネルのメモリ不足システムによって強制終了されていると思います-システムがメモリ不足になると、トラップできない方法でプロセスを強制終了するため、valgrind は何も言わずに終了します。

おそらく、プログラムは大量のメモリを使用し、メモリの定義を追跡するために追加のメモリが必要な valgrind で実行すると、使用可能なメモリが十分になく、(間違いなく非常に大きな) valgrind プロセスが強制終了されます。

私が正しければ、valgrind の下でプログラムを実行できるようにするには、より多くのメモリ、または少なくともより多くのスワップを備えたマシンが必要になります。

于 2012-06-07T21:30:42.047 に答える
0

これは、マシンが非標準のメモリ割り当てを使用している場合にも発生する可能性があります。たとえば、プロセッサのメモリ空間でアクセスされる独自の物理メモリを持つコプロセッサ (GPU、FPGA) を使用している場合です。

私たちの場合、ベンダーは valgrind で動作するようにフレームワークを修正する必要がありました。

于 2014-06-20T20:29:09.690 に答える