巨大なアプリのメモリ消費の分析中に、glibc の mtrace を使用します。しかし問題は、malloc 呼び出しのソースだけを提供し、完全なスタック トレースを提供しないことです。したがって、多くの場所で使用されているメソッドで malloc を使用すると、malloc の見分けがつかないソースが 1 つだけ報告されます。もう 1 つの問題は、標準の C ライブラリと、CSimpleArray などの汎用オブジェクトです。誰かが巨大な配列を使用したことだけは知っていますが、誰が正確にはわかりません。
したがって、誰が malloc を正確に使用したかを知るには、完全なスタック トレースが必要だと考えました。そのような mtrace の亜種が存在するかどうか知っていますか? または、それを行うために単純に変更できますか?
注意: 私の mtrace.out ログには 30 万行が含まれており、mtrace スクリプトで処理した後は 1 万のエントリがあります。最大の 10% のチャンクのみをローカライズすれば十分です。