tracepoint
2023-12-15 18:06:53
tracepoint的目标
放置在代码中的tracepoint提供了一个钩子,用于调用可以在运行时提供的函数(探测)。跟踪点可以“开”(有探针连接到它)或“关”(没有连接探针)。当跟踪点处于“关闭”状态时,除了增加少量的时间penalty惩罚(检查分支的条件)和空间penalty惩罚(在检测函数的末尾为函数调用添加几个字节,并在单独的部分中添加数据结构)之外,它没有任何影响。当跟踪点处于“on”状态时,每次在调用者的执行上下文中执行跟踪点时都会调用您提供的函数。当所提供的函数结束执行时,它返回给调用者(从跟踪点站点继续)。您可以在代码中的重要位置放置跟踪点。它们是轻量级的钩子,可以传递任意数量的参数,这些参数的原型在放置在头文件中的跟踪点声明中描述。
它们可用于跟踪和性能核算。
使用tracepoint
#undef TRACE_SYSTEM
#define TRACE_SYSTEM subsys
#if !defined(_TRACE_SUBSYS_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_SUBSYS_H
#include <linux/tracepoint.h>
DECLARE_TRACE(subsys_eventname,
TP_PROTO(int firstarg, struct task_struct *p),
TP_ARGS(firstarg, p));
#endif /* _TRACE_SUBSYS_H */
/* This part must be outside protection */
#include <trace/define_trace.h>
In subsys/file.c (where the tracing statement must be added) :
#include <trace/events/subsys.h>
#define CR
文章来源:https://blog.csdn.net/MEIYOUDAO_JIUSHIDAO/article/details/135009132
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!