問題タブ [memory-leak-detector]
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 - Cygwin のメモリ リーク検出ツール
Cygwin のメモリ リーク検出ツールを探しています。cygwin の C アプリケーションに最適なメモリ リーク検出ツールは何でしょうか?
c++ - Valgrindを使用して実行時に実際のメモリリークをチェックする方法は?
一部のプログラムでは、割り当てられたメモリの一部がまったく破棄されませんが、プログラムの実行時間全体に必要です。したがって、一般的に安全であると考えられています。
しかし、プログラムの実行時間全体を意図していないが、開発者のミスのために破棄されていない他のオブジェクトがあります。これらは、対処する必要がある実際のメモリ リークです。
次の Valgrind コマンドを実行すると、プログラムの実行が終了した後の合計リークのみが表示されます。したがって、上記の 2 つのシナリオを Valgrind リーク チェックの出力と区別する方法を誰かが明確にすることができます。
メモリ リークを検出するために使用したコマンド。
実行終了時の典型的な出力。
実行時に現在リークされているメモリを検出できる、IBM Purify ツールの Tap のような Valgrind の機能はありますか?
c++ - 新しい演算子をオーバーロードして MFC C++ アプリでメモリ リークを見つける
MFC アプリケーションがあります。そのアプリのメモリ リークの原因を突き止めるために、すべての動的メモリ割り当て (ヒープ上) をトレースしたいと考えています。IDE は Visual Studio 2010 です。
私は次のことをしました:
- 「MEMORY_LEAK_FINDER」と呼ばれるプリプロセッサ ディレクティブが導入されました。
- 「CMemLeakHunter」というクラスが追加されました。これらのファイルの正確な内容は以下にあります。
- すべての新しい演算子 (3 つすべて: new、new[]、および CObject::new) をオーバーロードし、それらを使用してメモリが割り当てられた場所 (ファイル、行) をトレースするというアイデアがありました。実行の最後に、'CMemoryState' クラスを使用してメモリ リークの場所を出力したかったので、最終的に割り当てのトレースを CMemoryState の比較 (差分) トレースと比較できました。
問題は、アプリケーションが (VS 2010 デバッグ モードで) コンパイルされるが、次のリンカ エラーが発生することです。
エラー 4 エラー LNK2005: "void * __cdecl operator new[](unsigned int,char const *,int)" (??_U@YAPAXIPBDH@Z) は CMemLeakHunter.obj E:\Software\Nafxcwd.lib(afxmem. obj) エラー 3 エラー LNK2005: "void * __cdecl operator new(unsigned int,char const *,int)" (??2@YAPAXIPBDH@Z) CMemLeakHunter.obj E:\Software\Nafxcwd.lib(afxmem. obj) エラー 5 エラー LNK2005: "public: static void * __stdcall CObject::operator new(unsigned int,char const *,int)" (??2CObject@@SGPAXIPBDH@Z) CMemLeakHunter.obj E:\Software で既に定義されています\Nafxcwd.lib(afxmem.obj) エラー 6 エラー LNK1169: 1 つ以上の多重定義シンボルが見つかりました E:\Software\Module1.exe 1
ライブラリNafxcwd.libを無視すると問題が解決する可能性があることがわかりました。私のアプリケーションではそうではありませんでしたが、そのライブラリを無視して、別の 17000 リンカ エラー (未解決の外部) を試しました。
追加の依存関係は次のとおりです。Nafxcwd.lib;Ws2_32.lib;Version.lib
特定のデフォルト ライブラリを無視する:msvcprtd.lib;libcimtd.lib;libcmt.lib
ソフトウェアを簡単に分割できないので、助けを求めます: MFC を使用していて、上記の .lib ファイルを使用する必要がある場合、自分のアプリによって行われたメモリ割り当てを追跡するにはどうすればよいですか? 解決策は何ですか?この問題を解決して、メモリ割り当てを追跡し、リークの原因を突き止められるようにしてください。また、別の MFC 組み込みルーチンが使用できる場合は、それを使用することにも前向きです。しかし、私は自分で役に立つものを見つけませんでした。
ヘッダー ファイルCMemLeakHunter.hppは次のように記述されます。
ソース ファイルCMemLeakHunter.cppは次のように記述されます。
ios - Nvwa リーク検出ライブラリが iOS でクラッシュする
Nvwa は、特にシミュレーターで、delete オペレーターのオーバーライドでの無料呼び出しでクラッシュし、次のエラーが発生します。
malloc: *** error for object [hexadecimal address]: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
java - DefaultListableBeanFactory オブジェクトによる jboss サービスのメモリ リーク
jboss サービスでメモリ リークが発生します。ヒープ ダンプを確認したところ、ヒープの大部分が DefaultListableBeanFactory と ConcurrentHashMap によって占有されていることがわかりました。
すでに報告されているこの問題に遭遇しました https://jira.spring.io/browse/SPR-9842
私の問題も同じですが、私は spring(spring-beans) バージョン 3.1.1.RELEASE を使用しています。これが実際に春の問題なのか、それとも私のコードの問題なのか、誰かが助けてくれますか? また、スプリングに問題がある場合、解決策は何ですか?
ありがとう
java - GCViewerによるGCダンプ解析
GCviewer を使用して GC ログを分析しています。GCviewer オプションを理解するためのより良いチュートリアルを入手できませんでした。以下のオプションについて説明し、GCViewer チュートリアルを共有してください。
GCViewer の [メモリ] タブで、以下のオプションを見つけました。
c - Clangでメモリリークを見つける方法
C コードのメモリ リークを見つけるために、自分のマシン (ubuntu) に Clang をインストールしました。次のように、その動作を確認するためにサンプルコードを作成しました。
私はインターネットでコンパイルするためのいくつかのオプションを見つけました
と
しかし、どれもメモリ リークの兆候を示していません。
scan-build: 静的分析に「/usr/bin/clang」を使用しています
scan-build: レポートが含まれていないため、ディレクトリ「/tmp/scan-build-2015-07-02-122717-16928-1」を削除しています。
scan-build: バグは見つかりませんでした。
メモリリークの検出にClangを正しく使用する方法を教えてください。
g++ - GCC と -fsanitize=leak
私は大規模な C++ プロジェクトに取り組んでおり、clang でコンパイルするのは面倒なので、GCC にこだわっています。
前職でclangで使っていたナイスフラグを使いたいのですが、うまくいき-fsanitize=leak
ません。
私はそれをテストするために非常に簡単な例を作りました:
clang を使用すると、期待どおりに動作します。
しかし、gcc では何も検出されないようです。
素敵な環境変数のようなものを見逃しましたか? 誰かがgccで動作させたことがありますか?
編集:これはたとえば機能します:
しかし、それはできません。パフォーマンスの欠点が大きすぎます。リーク検出のみが必要です。
java - ファイル記述子リークの例?
Android でのファイル記述子のリークを示す良い例はありますか? たとえば、ストリームを閉じないと発生することをどこかで読みましたが、それFileInputStream
をFileOutputStream
示す良い参考例が見つかりませんでした。
いくつかのブログ/コード スニペットを共有してください。ありがとう!