0

既存のツールをメモリデバッガの機能(リーク検出のみ)で拡張したいと思います。

一部のメモリデバッガーは、malloc / freeを置き換え、解放されるのを保留しているものと、誰がそれを割り当てたかを追跡することで機能することを知っています。または、ある種の仮想マシンでプロセスを実行し、メモリアクセスを監視します。

たとえば、dmallocptrace()を使用して再構築し、別のプロセスで割り当てを監視する代わりに、malloc/freeにブレークポイントを設定するために使用することが理にかなっているのかどうかを知りたいです。遅すぎるでしょうか?他のツールはこのように機能しますか?

4

1 に答える 1

0

いくつかの理由から、デバッガーを使用してmalloc/free呼び出しをトラップすることは実用的ではありません。

  1. あるプロセスから別のプロセスに切り替えるオーバーヘッドは、重要なプログラムでは非常に大きくなります。

  2. 所有権情報を格納するために、他の方法と同じ量のメモリを消費することになります。(これは私が実際に改善したかったことです)

  3. ヒープを機能させる機能はかなりたくさんあり、いくつかを見逃しがちです。

于 2014-04-19T02:55:19.787 に答える