問題タブ [valgrind]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++の動的2D配列とメモリリーク
私はこのコードを書きました。正常に動作しますが、Valgrindで確認すると、2つの問題が発生します。valgrindのメッセージを解釈できないので、誰かが私にもっと説明して、どこに問題があるのか教えてくれれば幸いです!!!
コードは次のとおりです。
c - C プログラムは Cygwin で実行されますが、Linux では実行されません (Malloc)
Linux の vanguard/gdb で検出されたが、Windows cygwin 環境では完全に実行されるコードで見つけられないヒープ割り当てエラーがあります。Linux のヒープ割り当てが Windows よりも厳しくなる可能性があることは理解していますが、問題/可能な修正を発見する応答が本当に必要です。また、C で malloc を型キャストするべきではないことも認識していますが、これは習慣の力であり、問題が発生するのを変えるものではありません。私のプログラムは実際には Linux と Windows の両方でエラーなしでコンパイルされますが、Linux で実行すると恐ろしい結果が得られます。
malloc.c:3074: sYSMALLOc: アサーション `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2]))) - __builtin_offsetof (struct malloc_chunk、fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~(((2 * (sizeof) (size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' が失敗しました。中止しました
レビュー用のエラーとして指摘されている私のコードからの添付スニペット:
gdb レポート: free(): 無効なポインター: 0x0000000000603290 *
valgrind は、「VALGRIND INTERNAL ERROR」シグナル 11 (SIGSEGV) が原因で、終了する前に次のメッセージを 5 回報告します:
Invalid read of size 8
==2727== at 0x401043: calcPairs (in /home/user/Documents/5-3/ubuntu) test/main)
==2727== by 0x400C9A: main (main.c:51)
==2727== アドレス 0x5a607a0 は、スタック、malloc、または (最近) 解放されていません
c++ - 動作の違い (GCC と Visual C++)
次のコードを検討してください。
Linux (IDE 使用: Code::Blocks )でコードがセグメンテーション違反を起こす理由がわかりませんでしたが、Windows (IDE 使用: Visual C++ ) ではそうではありません。
実際に何が問題なのかを確認するためだけに Valgrind を使用したところ、この出力が得られました。
私はInvalid write of size 4
4つの異なる場所に行きました。では、Visual C++ を使用したときにコードがクラッシュしなかったのはなぜですか?
何か不足していますか?
c++ - callgrind の出力を読む際に助けが必要
次のように、アプリケーションで callgrind を実行しました。
そして、次のように呼び出します。
次のような出力が表示されます。
いくつかの質問を聞きたいんです:
右の数字の意味は?右側の関数を呼び出すのにそれだけの時間を費やしているということですか? その関数が呼び出された回数と、その関数によって呼び出された関数の呼び出しに費やされた時間が含まれているかどうかを知るにはどうすればよいですか?
line with とは
???
どういう意味ですか? 例えば???:0x0000000000009190 [/usr/lib/libpangocairo-1.0.so.0.2800.0]
valgrind - kcachedgrind の出力を理解するのに助けが必要
私は valgrind callgrind を使用して gtk でプログラムをプロファイリングしています。そして、kcachedgrind を使用して結果を読み取ります。ここで kcachedgrind のスクリーンショットの更新をキャプチャしました: http://i41.tinypic.com/168spk0.jpg。関数 gtk_moz_embed_new() のコストは「15.61%」でした。しかし、私はそれがどのように可能であるかを理解していません。関数 gtk_moz_embed_new() には文字通り 1 行あります: g_object_new() を呼び出しているだけです。
結果またはkcachedgrindの使用方法を理解するのを手伝ってください。
ありがとうございました。
c - Valgrindの「ノイズ」、それはどういう意味ですか?
作業中のアプリのデバッグを支援するためにvalgrindを使用したとき、標準ライブラリについて不平を言っているように見える大量のノイズに気づきました。テストとして、私はこれを行いました。
それから私はこれをしました。
あなたはここで完全な結果を見ることができます:http: //pastebin.com/gcTN8xGp
2つの質問があります。まず、すべてのノイズを抑制する方法はありますか?
--show-below-mainはデフォルトでnoに設定されていますが、-show-after-mainに相当するものはないようです。
c++ - valgrind はクレイジーですか、それともこれは本物の std マップ イテレータのメモリ リークですか?
ええと、私は Valgrind とメモリ リーク プロファイラー全般に非常に慣れていません。そして、それらを使い始めると少し怖いと言わざるを得ません。これまでにどれだけ多くのリークを未解決のままにしていたのか疑問に思うのをやめられないからです!
ところで、私は C++ プログラマーの経験がないので、これが確かにメモリ リークなのか、それとも Valgrind が誤検出を行っているのかを確認したいと思います。
何故ですか?clear コマンドは、すべてのオブジェクトとすべてのベクトルのデストラクタを呼び出すべきではありませんか?
いくつかのテストを行った後、リークに対するさまざまな解決策を見つけました。
1) 削除:
2) 追加:
3) 秒の削除
解決策 2) を使用すると、Valgring は次のように出力します: 10 個の割り当て、11 個の解放よろしいですか?
new を使用していないのに、なぜ削除する必要があるのですか?
助けてくれてありがとう!
memory-leaks - Valgrindによると、メモリリークが非常に多いGTK+ウィンドウはどうなっているのでしょうか。
GTK +を利用したアプリケーションをvalgrindにロードすると、多くのメモリリークが報告されます。どうしたの?GTK +はバグがありますか?
c - valgrind に glibc ライブラリを無視させることはできますか?
一部のライブラリ セットを無視するように valgrind に指示することは可能ですか? 具体的には glibc ライブラリ..
実際の問題: 通常の実行で正常に動作するコードがいくつかあります。漏れ等はありません。
valgrind で実行しようとすると、コア ダンプが発生し、プログラムが再起動/停止します。
コアは通常、glibc 関数 (通常は fseek、mutex など) を指します。互換性のない glibc / valgrind バージョンに問題がある可能性があることを理解しています。
さまざまな valgrind リリースと glibc バージョンを試しましたが、うまくいきませんでした。助言がありますか?
c - calloc の呼び出し - メモリ リーク valgrind
次のコードは、NCURSESメニュー ライブラリの例です。コードの何が問題なのかはわかりませんが、valgrind はいくつかの問題を報告しています。何か案は...
ソースコード: