Cライブラリにカスタムdtraceプローブがいくつかあり、ライブラリをリンクしてCアプリケーションで使用すると、プローブは正常に機能しますが、C ++に対してリンクすると、プローブが見つからないと表示されます。その理由は、C ++のマングリングが原因のようであり、それを機能させることを試みることは、アヒルの追跡になっています。
何か案は?
注:gccを使用する
これまでのところ、これらの「便利な」リンクを見つけました
DTraceを使用したC++プログラムのプロファイリングとデバッグ
しかし、彼らは私の問題を解決していません。
後で私はこれらの記事を見つけました:
ユーザーランドのトレースがどんどん良くなる//これはとても役に立ちました
開発者が定義したDTraceプローブポイントをアプリケーションに配置する
SDTプローブを使用したDtrace //pdfいくつかの詳細を理解するのに役立ちましたが、情報は古いです
基本的には、probes.dからのヘッダーファイルにdtrace-hを使用することになります。
extern "C" { ... }
C関数を宣言するときに試しましたか?