C/C++ プログラムのメモリ管理に役立つツール (Linux 用) の実装を依頼されました。主な目的はメモリ リークを追跡することですが、特に memcpy への重複する引数をチェックしています。
私は実際にこれらの関数へのすべての呼び出しをインターセプトするために自分のバージョンが必要なので (たとえば、他のライブラリから)、実際にそれらをオーバーライドする必要があります。したがって、すべての投稿で提案されている #define トリックは使用できません。私の質問は、元のソース ファイル名、呼び出しが行われた関数、および行番号を見つける方法です。
これまでの私の唯一のアイデアは、デバッグ情報を使用してプログラムをコンパイルし、オブジェクト ファイル (Linux を使用しているため ELF ) を掘り下げることです。私はオブジェクト ファイルで遊んだことがなく、アセンブリ言語の基本しか知らないので、これはかなり大変な作業のようです。
これを達成するための他の簡単な方法はありますか?似たようなことに取り組んだことがある人が、私がそれを始めるのを手伝ってくれるとしたら:)?.
ありがとうございました