C++ 在跟踪之前,我是否可以查询LTTNG是否要跟踪具有给定参数的给定跟踪点?
我们需要将大量类似printf的现有跟踪修改为LTTNG。我们预见到的一个问题是,我们需要一个args加char*字符串格式的全面跟踪点。我们试图找到一种方法,避免在调用LTTNG跟踪点之前必须编写字符串。在将跟踪点传递到LTTNG库之前,是否有任何方法可以预先知道跟踪点是否“将被跟踪”?我们可以调用任何方法来确定跟踪是否匹配 非常感谢C++ 在跟踪之前,我是否可以查询LTTNG是否要跟踪具有给定参数的给定跟踪点?,c++,c,lttng,C++,C,Lttng,我们需要将大量类似printf的现有跟踪修改为LTTNG。我们预见到的一个问题是,我们需要一个args加char*字符串格式的全面跟踪点。我们试图找到一种方法,避免在调用LTTNG跟踪点之前必须编写字符串。在将跟踪点传递到LTTNG库之前,是否有任何方法可以预先知道跟踪点是否“将被跟踪”?我们可以调用任何方法来确定跟踪是否匹配 非常感谢 另外,我们知道拥有这种跟踪点是一种不好的做法,但是无数的跟踪线在我们的头顶上飞舞。从技术上讲,你可以通过它来查询跟踪会话的状态。但是,如果您的目标是提高性能,我
另外,我们知道拥有这种跟踪点是一种不好的做法,但是无数的跟踪线在我们的头顶上飞舞。从技术上讲,你可以通过它来查询跟踪会话的状态。但是,如果您的目标是提高性能,我不确定每次遇到跟踪点时通过此库进行查找是否比字符串格式化更有效。您必须对其进行基准测试
作为旁注,如果要将现有的
printf()
调用移动到LTTng跟踪点,您可能需要查看,它基本上是跟踪程序已经定义的单格式字符串跟踪点。LTTng 2.7中还将引入一个稍高级的tracelog()
函数。使用tracepoint\u enabled()
和do\u tracepoint()
宏,如下所示,代码复制自:
注意:要使其正常工作,您至少需要
if (tracepoint_enabled(ust_tests_hello, tptest)) {
/* prepare arguments */
do_tracepoint(ust_tests_hello, tptest, i, netint, values,
text, strlen(text), dbl, flt);
}