【问题标题】:How to use trace marker in ftrace?如何在 ftrace 中使用跟踪标记?
【发布时间】:2018-04-26 19:59:39
【问题描述】:

如何在ftrace 中使用跟踪标记来记录用户事件?我使用以下,但编译器无法定义WR_ONLY

static int trace_fd = -1;

    void trace_write(const char *fmt, ...)
    {
            va_list ap;
            char buf[256];
            int n;

            if (trace_fd < 0)
                    return;

            va_start(ap, fmt);
            n = vsnprintf(buf, 256, fmt, ap);
            va_end(ap);

            write(trace_fd, buf, n);
    }


    [...]

    trace_fd = open("trace_marker", WR_ONLY);

后来,使用trace_write()函数记录到ftrace 缓冲区。

    trace_write("record this event\n")

编译器错误:

error: C++ requires a type specifier for all declarations
trace_fd = open("trace_marker", WR_ONLY);

【问题讨论】:

    标签: kernel trace ftrace


    【解决方案1】:

    ftrace documentation 中似乎有一个错误,您似乎从那里复制了您的代码。尝试O_WRONLY#include &lt;sys/fcntl.h&gt; 获取其定义)而不是WR_ONLY

    请注意,您还需要trace_marker 的完整路径,即/sys/kernel/debug/tracing/trace_marker/sys/kernel/tracing/trace_marker,具体取决于您的内核版本和tracefs 的挂载位置。

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 2017-05-22
      • 2022-07-01
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 2016-11-13
      相关资源
      最近更新 更多