strace はライブラリの呼び出しに使用されます。

strace はライブラリの呼び出しに使用されます。

私はstraceを知っています。システムコールを監視するのに非常に便利です。外部ライブラリへの呼び出しを追跡するための同等の機能はありますか?

たとえば、サードパーティのバイナリを使用して一部のSSLeay誤動作をデバッグしようとしていますが、サードパーティのバイナリのコードにアクセスできません(これを行う開発者は応答しません)。私はこの問題を解決したと思いますが、署名検証用のデータがSSLeayに送信されるようにフォーマットがどのように指定されているかを正確に知らない限り、これをテストすることはできません。

答え1

ltrace- ライブラリ呼び出しトラッカー。

Linuxおよび小規模アーキテクチャでのみ機能します。 dlopen()ed ライブラリーへの呼び出しは追跡されません。マニュアルページの追加ガイドラインと/etc/ltrace.conf

答え2

時々働く通常、これにはデバッガが必要です。広東開発銀行objdump -d /path/to/executable。逆アセンブリの呼び出し構造()を見ると、どの関数にトレースポイントまたはブレークポイントを配置する必要があるかを考えることができます。

関連情報