【问题标题】:trace_pipe what are they/ is it file or some kind of channel that I can open and read and write to it | And what are Linux tracetrace_pipe 它们是什么/它是文件还是某种我可以打开和读写的通道 |什么是 Linux 跟踪
【发布时间】:2022-01-26 08:01:32
【问题描述】:

所以我有这个代码

所以我想知道这个trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY, 0); 是什么,它看起来像是在读取跟踪但什么是跟踪,所以开始告诉我有关跟踪的一些信息,我可以读取任何跟踪/那里有多少跟踪。如果我在跟踪管道上进行写入,那么写入系统调用的另一端是什么。所以我对单词跟踪非常困惑,更不用说下面写到trace_pipe的简单代码了。我可以创建自己的跟踪吗?如何以及请告诉我这个

void read_trace_pipe(void)
{
    int trace_fd;

    trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY, 0);
    if (trace_fd < 0)
        return;

    while (1) {
        static char buf[4096];
        ssize_t sz;

        sz = read(trace_fd, buf, sizeof(buf) - 1);
        if (sz > 0) {
            buf[sz] = 0;
            puts(buf);
        }
    }
}

【问题讨论】:

    标签: c linux trace strace systrace


    【解决方案1】:

    DEBUGFS 这里是一个宏定义(可能)是一个包含目录名称的字符串,所以这只是在该目录中打开一个名为trace_pipe 的文件并读取它。这可能只是一个普通文件,也可能是某人创建的某种命名管道。

    这不是任何标准的东西,与 strace 或 systrace 无关——它可能只是这个应用程序设置的东西。 "trace_pipe" 只是一个文件名。要理解它,您确实需要知道DEBUGFS 的定义是什么,以及谁在该目录中创建了东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-13
      • 2011-01-19
      • 2016-10-24
      • 2023-01-11
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多