問題タブ [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.

0 投票する
2 に答える
7160 参照

c - Valgrind で単体テストを実行するのはやり過ぎですか?

ほんの数日前、check と呼ばれる単体テスト フレームワークの調査を開始し、Linux で C コードでテストを実行するつもりです。

ここで、適切に設計されたコードといくつかのテスト コードを確認して、基本的な機能が正しいことを確認するのに役立ちます。つまり、変数を見て応答を返し、関数が正しいかどうかを判断するのは非常に簡単です。

しかし、malloc と free を大幅にオフにして動的メモリ構造をテストしたいとしましょう。データを入れて、正しいデータを再び取得できることがわかりました。しかし、それは私がその過程でいくつかのメモリを壊していないことを証明するものではありません.メモリの半分を解放するのを忘れてポインタを失ったとしましょう(古典的なメモリリーク). そのコードは、おそらくほとんどの単体テストに合格するでしょう。

それでは質問です。ユニット テスト コード全体を Valgrind で実行し、malloc/free の問題を検出させるのは良い考えですか? (または、Electric Fence のようなものでコンパイルしますか?)

いいアイデアのように感じますが、ここで何を考えているのかわかりません.....

ありがとうヨハン


更新: Douglas と Jonathan に感謝します。

更新: Valgrind は楽しいツールですが、これを行うと最初に見つかった memleaks は、自分のコードではなくテスト フレームワークにありました (かなり面白いですが)。したがって、残りのヒントは、独自のコードをひっくり返す前に、使用している単体テスト フレームワークがリークしていないことを確認することです。私の場合は空のテスト ケースで十分でした。それは、単体テスト フレームワークしか実行されていないためです。

0 投票する
4 に答える
5663 参照

openssl - openssl / valgrind

ファイルのMD5を計算する必要のあるアプリケーションがあり、opensslライブラリを使用しましたが、valgrindはまだ到達可能ないくつかのブロックについて文句を言います。

次のコードをコンパイルします。

valgrindを使用して実行します。これが私が取得しているものです。

誰もが同じ経験をしましたか?

0 投票する
1 に答える
402 参照

c++ - Valgrind でプログラムを実行中にデバッグするにはどうすればよいですか?

私はコード mod を仕上げていて、Valgrind を介してプログラムを実行して、すべてのメモリが考慮されていることを確認したかったのですが、プログラムは、単独で実行すると失敗しないアサーションに失敗しました。Valgrind から実行中にデバッガーで停止することは可能ですか? 私は現在、マニュアルをざっと読んでいますが、皆さんからもっと早く回答を得ることができると考えました.

0 投票する
2 に答える
9927 参照

c++ - お気に入りの Valgrind オプション

私は通常これを使用します:

しかし、一方ではすべてをチェックするかどうかはわかりませんが、他方では冗長すぎます。お気に入りのオプションは何ですか?

0 投票する
6 に答える
23976 参照

c++ - 「条件付きのジャンプまたは移動は、初期化されていない値に依存します」について心配する必要がありますか?

Memcheck (Valgrind から) を使用したことがある場合は、おそらくこのメッセージに精通しているでしょう...

条件付きジャンプまたは移動は、初期化されていない値に依存します

これについて読んだことがありますが、初期化されていない値を使用すると発生します。

は自動的に初期化されるため、これsは機能します...これが事実であり、機能する場合、Memcheck はなぜ初期化されていないと通知するのでしょうか? メッセージを無視する必要がありますか?

おそらく、エラーがどこに向けられているのかを誤解していたのでしょう。Valgrindマニュアルから、実際の誤ったスニペットは...

ただし、私のコードでは、そのようなものは見られません。ただし、Memcheck が示すスタック トレースの先頭にある関数が仮想関数であることに気付きました。これは何か関係があるのでしょうか?

更新 1:

GlutApplication.cpp:120 を調べたところ、初期化されていない変数がその行の関数に渡されていたようです。単純!

0 投票する
2 に答える
2813 参照

c++ - Valgrind が std::map の私の実装を述べているのはなぜですかメモリリークを生成しますか?

Valgrind は以下を出力しています。

これは何を意味するのでしょうか?

0 投票する
2 に答える
1736 参照

c++ - Valgrind が私の glutCreateWindow の使用を好まないのはなぜですか?

次のコードを使用しています...

... Valgrind は私に次のことを教えてくれます ...

しかし、初期化されていないものは何ですか? title 変数は Title.c_str() の値で初期化され、Title はコンストラクターメンバー初期化リストで初期化されるクラスメンバーです...

0 投票する
3 に答える
7696 参照

c - Valgrind に関する既知の誤検知の問題はありますか?

Valgrind で既知の誤検知はありますか? 関数で「条件付きのジャンプまたは移動は、初期化されていない値に依存します」を取得しfmemopen、C で記述し、GCC でコンパイルします。それが本物だと確信できますか?

編集:抑制ファイルにない既知の問題はありますか? プログラムで実行できることはありますか?実際にはエラーではありませんが、Valgrind はエラーであると言いますか? 既知の問題がある場合は、リストがあると便利です。

0 投票する
7 に答える
30640 参照

windows - Windows Callgrind 結果ブラウザー、KCacheGrind の代替

KCacheGrind 以外に、callgrind の結果を表示できるツールはありますか? できれば Windows プラットフォーム向けですか?

0 投票する
1 に答える
2740 参照

unit-testing - Valgrind 自動テスト -- それらはどこかで使用されていますか?

valgrind のツール スイートに基づいて一連の自動テストを実行することは理にかなっていると思いますか? そのような設定が実際に行われていることを聞いたり、見たりしましたか? そのようなセットアップは、どのような自動的な (人間の直感から解放された) アクションを実行できますか?