ライブラリのクローンを作成して、memcpy や memmove などの 1 つの関数だけを変更し、デバッグ/探索目的でライブラリへの実行可能リンクを既に作成している場合、これを行う適切な方法は何ですか?
ライブラリ全体を変更して再コンパイルする必要があると思いますが、これを行う別の方法はありますか?
malloc フックのようなものがあることは理解していますが、これは malloc の特殊なケースのようです。誰かがリソースを持っている場合、valgrind と gdb が別のプログラム内からこれを行う方法の詳細に興味があります。
Mac と Linux のソリューションに興味があります。Linux では、以前に LD_LIBRARY_PATH を使用したことがあります。ライブラリ名を同じにする以外に必要なことはこれだけですか? Macでこれを行うにはどうすればよいですか?
なぜ私がこれをやりたいのか知りたい方のために説明すると、その目的は実験音楽のためです。メモリ操作を音声化するためにこれを行っているため、memcpy/memmove は通常どおり動作しますが、アクセスされたデータはサウンド カードにも送信されます。これを行うには他の方法があることは知っていますが (すでに他の方法をいくつか実行しています)、現在 memcpy/memmove に焦点を当てることに興味があるので、回答をこの焦点に限定していただければ幸いです。