当前位置: 首页 > news >正文

Linux kernel debug trace: ftrace

Ftrace(function tracer)是内核自带的高性能tracing框架,它实际是由多个不同的追踪工具组成的框架,用于函数调用,内核事件和系统行为的追踪,调试或分析延迟,以及解决发生在用户空间之外的性能问题。

Ftrace使用tracefs文件系统来保存控制文件(用于显示输出),tracefs被配置到内核时,会创建目录:/sys/kernel/tracing,该目录下对应多个控制和输出文件,以下是关键文件的列表(所有时间值均以微妙为单位):ftrace - 函数追踪器 — Linux 内核文档

  • current_tracer:
    • 显示当前配置的tracer
  • available_tracers:
    • ​​​​​​​显示已被编译进kernel的tracers,这些tracer都可以通过echo tracer > current_tracer的方式被配置;
  • tracing_on:
    • ​​​​​​​是否enable tracer (即,将tracer写入trace ring buffer);
  • trace:
    • ​​​​​​​该文件保存了易读的trace输出;
  • tracing_max_latency:
    • ​​​​​​​有的tracer记录了最大延迟,该文件记录了最长延迟及对应的trace,如,中断被禁用的最长时间。
  • tracing_thresh:
    • ​​​​​​​当时延大于该文件的值(不为0时,该功能激活)时,有些tracers才会记录;
  • tracing_cpumask:
    • ​​​​​​​仅追踪被cpumask设置的特定CPU;
  • set_ftrace_filter:
    • ​​​​​​​动态配置哪些tracer enable,被enable的tracer 可通过available_filter_functions中列出;
  • set_ftrace_notrace:
    • ​​​​​​​动态配置哪些tracer disable,若与set_ftrace_filter 冲突,以set_ftrace_notrace为主。
  • set_ftrace_pid:
    • ​​​​​​​只追踪列在该文件中的任务(PID)
  • set_ftrace_notrace_pid
    • ​​​​​​​不追踪列在该文件中的任务(PID)
  • set_event_pid/set_event_notrace_pid:
    • ​​​​​​​确定事件是否追踪列在该文件中的任务(PID)
  • set_graph_function/set_graph_notrace:
    • 启用/disable function graph tracer 的ftracer列表
  • enabled_functions:
    • 显示该function所有被调用的函数及调用次数
http://www.jsqmd.com/news/697993/

相关文章:

  • 5分钟快速上手KrkrzExtract:新一代krkrz游戏资源处理工具终极指南
  • 抖音无水印下载器终极指南:免费批量保存视频的完整教程
  • 2025届最火的AI论文平台解析与推荐
  • 计算机毕业设计Python+PyTorch恶意流量检测系统 信息安全 网络安全(源码+LW+PPT+讲解)
  • UltraScale+ 40G/50G以太网子系统IP核的GT时钟共享优化实践
  • ClickShow:为Windows鼠标操作增添可视化反馈的实用工具
  • 国内专业汽车零配件产品包装设计行业TOP5设计公司市场调研测评报告(2026版) - 设计调研者
  • 网络取证分析第一步:用Python+libpcap快速批量处理海量pcapng抓包文件
  • 3个步骤掌握curatedMetagenomicData:解锁人类微生物组研究的标准化数据宝库
  • 保姆级教程:用Realsense D435i和VINS-Fusion给PX4飞控做视觉定位,坐标转换避坑指南
  • Showdown.js 深度实战指南:JavaScript Markdown转换库的完整使用技巧
  • 3分钟搞定GitHub界面汉化:终极中文插件使用指南
  • 如何快速掌握SJTUThesis:面向新手的上海交通大学LaTeX论文模板完整指南
  • Qwen3-4B-Instruct效果展示:支持思维链(CoT)的超长数学证明生成
  • 基于 Qt C++ 开发对接 航天科工量子导航设备 的应用
  • 别再死记硬背了!用这个免费在线工具,5分钟看懂史密斯圆图怎么匹配天线阻抗
  • 3个核心技巧彻底解决Blender到Unity坐标混乱:为什么你的模型总是导入失败?
  • 光学工程专业英语核心词汇精讲:从基础概念到像差解析
  • 别再为m3u8播放发愁了!一个Express服务搞定咪咕视频的播放地址加密问题
  • 别再死记硬背了!用Python脚本模拟UDS诊断请求,手把手教你玩转ISO 14229-1
  • 构建一个完善的数据库运维体系
  • PDF-Parser-1.0功能实测:上传PDF自动分析,结果清晰易懂
  • 别再只调包了!手把手教你用Python从零实现决策树(附完整代码与蘑菇分类实战)
  • 3分钟掌握缠论精髓:ChanlunX自动化分析插件助你告别手工绘图烦恼
  • 医疗AI模型本地调试实战(VSCode + Docker + FHIR模拟器深度集成)
  • 别再混淆了!一文讲透匈牙利算法与KM算法的区别、联系及在OpenCV中的实战
  • 解码AMD处理器底层控制:从硬件黑盒到透明调优的演化之路
  • Theano深度学习库:核心架构与实践指南
  • DVWA靶场XSS(Reflected)通关后,我总结了5个新手最常踩的坑和正确防护姿势
  • 激光雕刻控制终极指南:5个技巧掌握LaserGRBL开源软件