他のプログラムが使用する共有ライブラリを C で構築しています。共有ライブラリのエラーが原因で、これらの他のプログラムがクラッシュすることがあります。この種のバグを再現するとき、ライブラリのどの関数がどの引数でどのような順序で呼び出されているかを知ることは非常に役に立ちます。もちろんprintf()
、すべての関数に呼び出しを追加したり、それらすべてにブレークポイントを追加したりできますが、これを判断するにはもっと良い方法が必要だと思います。
編集:OSXでこれを行っているため、dtraceと関連スクリプトdapptraceが有望に思えます。ただし、いくつかのドキュメントを掘り下げた後、私はまだ少し迷っています。
たとえば、私のライブラリは/path/to/libmystuff.soで、このライブラリにリンクするプログラムテストがあります。dtraceを使用して、 libmystuff.soにあるすべての関数呼び出しのリストを表示するにはどうすればよいですか?