首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ftrace中使用跟踪标记?

如何在ftrace中使用跟踪标记?
EN

Stack Overflow用户
提问于 2018-04-27 03:59:40
回答 1查看 986关注 0票数 0

如何在ftrace中使用跟踪标记来记录用户事件?我使用了以下代码,但是编译器不能定义WR_ONLY

代码语言:javascript
复制
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缓冲区中。

代码语言:javascript
复制
    trace_write("record this event\n")

编译器错误:

代码语言:javascript
复制
error: C++ requires a type specifier for all declarations
trace_fd = open("trace_marker", WR_ONLY);
EN

回答 1

Stack Overflow用户

发布于 2019-04-11 07:15:25

ftrace documentation中似乎有一个错误,您似乎已经从其中复制了代码。尝试使用O_WRONLY (#include <sys/fcntl.h>获取其定义),而不是WR_ONLY

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50050973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档