首页 > 系统相关 >Linux tracepoint使用和理解

Linux tracepoint使用和理解

时间:2023-12-15 11:56:07浏览次数:32  
标签:__ num TRACE TP 理解 Linux output tracepoint

参考:如何使用 TRACE_EVENT() 宏来创建跟踪点

1.如何查看tracepoint

/sys/kernel/debug/tracing/events/

通过perf list tracepoint查看

2. tracepoint理解

因此tracepoint方式如下:

#undef TRACE_SYSTEM
#define TRACE_SYSTEM xhr_test

#if !defined(_TRACE_TE_TEST_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_TE_TEST_H

#include <linux/tracepoint.h>

TRACE_EVENT(te_test,  // 定义函数trace_te_test
    TP_PROTO(int num), // 函数接收参数 int 类型
    TP_ARGS(num),
    TP_STRUCT__entry(
        __field(int, output)  // 字段名
        __field(int, count)   // 字段名
    ),
    TP_fast_assign(
        __entry->count++;
        __entry->output = num; // output 等于传入的参数 num
    ),
    TP_printk("count=%d output=%d",
        __entry->count, __entry->output)
);

#endif /* _TRACE_TE_TEST_H */
    
/* This part must be outside protection */
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH . //定义路径,找不到你就写绝对路径
#define TRACE_INCLUDE_FILE trace_event //定义文件 trace_event.h

#include <trace/define_trace.h>

因此,只要调用 trace_te_test(int num)即可

3.快速查找tracepoint

grep -rn TRACE_EVENT(name, ...)

标签:__,num,TRACE,TP,理解,Linux,output,tracepoint
From: https://www.cnblogs.com/tangshunhui/p/17903067.html

相关文章

  • 嵌入式linux下web服务器搭建(转载)
    一、移植编译生成boa二进制文件Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。首先下载......
  • Linux服务器环境安装mysql
    背景1、安装环境:kvm虚拟机2、运行环境:linux3、架构:x864、安装mysql版本:mysql-5.71、安装准备#Mysql官网https://downloads.mysql.com/archives/community/#下载安装包wget-i-chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2、安装m......
  • 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    联系:1.Linux的内核源代码和Linux的应用程序都可以自由获得,因此很多公司组织开发了属于自己的Linux发行版。2.基本上可以分为三大系类:Slackware、RedHat、Debian3.每个系列最具代表性的商业服务器级的发行版,分别是SUSELinuxEnterprise;RedHatEnterpriseLinux;UbuntuServ......
  • Linux(ps -aux命令)
    在Linux中,ps-aux是一个常见的用于查看系统进程信息的命令。以下是ps-aux命令的解释:ps:进程查看命令。-aux:这是ps命令的选项,有以下三个部分的组合:-a:显示所有用户的进程,而不仅仅是当前用户的。-u:显示详细的用户/拥有者(user)信息。-x:显示没有控制终端的进程。......
  • 0x09.Linux基础
    版本号xx.yy.zzxx是主版本号,yy是次版本号,奇数代表开发版,偶数代表稳定版,zz是更新次数。确定版本号,找expredhat忘记密码重新启动,在等待倒计时的时候,按e(编辑的意思)再按一下e键,停留在第二个,再按e。输入空格和s(单一的意思),再回车回到第二个,输入一个b(引导的意思),直接进入......
  • linux 安装jdk
    1.先下载jdk8,下载地址https://www.oracle.com/java/technologies/downloads/ ;本人用的jdk:jdk-8u333-linux-x64.tar.gz2.上传到服务器中3.将jdk8复制到/usr/local/下:cp./jdk-8u333-linux-x64.tar.gz/usr/local/4.进入到/usr/local目录,解压文件:tar-zxvfjdk-8u333-linux......
  • linux kernel modify printk buf size
    linuxkernelmodifyprintkbufsizeconfigureCONFIG_LOG_BUF_SHIFTmodifycode:wyk@ubuntu:~/soc/linux$gitdiffkernel/printk/printk.cdiff--gita/kernel/printk/printk.cb/kernel/printk/printk.cindexfd337bf9b..aaa98a8eb100644---a/kernel/printk/......
  • Linux_3.2 Shell语法
    1循环语句1.1for…in…do…done命令格式:forvarinval1val2val3#类似于枚举do语句1语句2...done示例1,输出a2cc,每个元素一行:foriina2ccdoecho$idone示例2,输出当前路径下的所有文件名,每个文件名一行:forfilein`ls`#$(ls)d......
  • 必须备份的 9 个 Linux 目录和不应该备份的目录
    备份是一项标准的系统管理服务。换句话说,组织中的每个人,从首席执行官到临时工,都依赖我们提供备份。人们会犯错误,您将需要用户数据、公司数据和日志的备份。但在Linux系统上,您需要在备份集中包含哪些内容并不明显。本文将指导您了解备份中应该包含哪些内容和不应该包含哪些内容。......
  • linux下一键上传markdown文件到博客园
    工具链接dongfanger/pycnblog:博客园上传markdown文件(github.com)这是工具的作者,网址里也有些教程,我这里再把教程写一写,加上自己一些使用的方式。诚挚感谢工具作者的开发贡献!使用指南配置typora用Typora进行编写,需要修改图片的存储方式打开文件>偏好设置,找到'图片插入'......