2

printf のような膨大な数の既存のトレースを LTTNG に適応させる必要があります。私たちが予見している問題の 1 つは、args と char* 文字列の形式のキャッチオール トレースポイントが必要になることです。LTTNG トレースポイントを呼び出す前に文字列を作成する必要がないようにする方法を見つけようとしています。トレースポイントが LTTNG ライブラリに渡される前に「トレースされる」かどうかを事前に知る方法はありますか? トレースが一致しているかどうかを知るために呼び出すことができるメソッドはありますか?

どうもありがとう!

PS この種のトレースポイントを持つことは悪い習慣であることはわかっていますが、無数のトレース ラインが私たちの上を飛んでいます。

4

2 に答える 2

1

tracepoint_enabled()およびマクロを次のように使用します。コードはマニュアル ページdo_tracepoint()からコピーされます。

if (tracepoint_enabled(ust_tests_hello, tptest)) {
    /* prepare arguments */
    do_tracepoint(ust_tests_hello, tptest, i, netint, values,
        text, strlen(text), dbl, flt);
}

注: これが機能するには、少なくともLTTng-UST 2.7.0-rc1が必要です。

于 2015-08-06T06:31:50.187 に答える