メモリ関連の問題を追跡するためにどのような戦略を使用しますか?メモリリーク、メモリ破損などを識別するためにどのツール(オープンソースと排他的)を使用しますか?システムでgdb / dbxのみが利用可能な場合は、メモリリークをどのように追跡しますか?
デバッガだけを使用してメモリリークを修正することは非常に困難です。
答え1
答え2
valgrindは非常に役立ちます。
答え3
構成(valgrindから)は、メモリリークを見つけるための最良の方法の1つです。疑わしいコードを繰り返し(または十分に長い間プログラムを実行して)、ms_printを使用して結果をダンプします。通常、コールスタックは問題を解決するのに十分な情報を提供します。
GDBを使用すると、実行中のプログラムに接続し、次のようなものを呼び出すことができます。malloc_stats()
プログラムが別の言語で書かれている場合は、より難しいかもしれません。最近、いくつかのGDBはスクリプト機能を獲得し、人々は次のような興味深いプロジェクトを始めました。GDBヒープ、コアダンプからPythonメモリを分析します。 C ++オブジェクトにも同様のメモリ分析スクリプトを使用できます。
また読んでくださいhttps://stackoverflow.com/questions/2564752/examining-cc-heap-memory-statistics-in-gdb
答え4
私はしばらくObjective-Cを使用してきましたが、Cレベルのメモリ管理などのタスクを処理するプロファイラがあります。Clang Static Analyzerとても良かったので、AppleはこれをxCode IDEと共にバンドルすることにしました。これがあなたの問題に適しているかどうかはわかりませんが、Cを使用している場合は試してみる価値があります。