• 2024-05-25tracer ftrace笔记(4)—— events.rst 翻译
    基于msm-5.4Android-12一、翻译=============事件追踪=============:作者:TheodoreTs'o:更新:李泽凡和汤姆·扎努西 1.简介===============无需创建自定义内核模块即可使用跟踪点(请参阅Documentation/trace/tracepoints.rst)来使用事件跟踪基础设施注册探测函数。并非
  • 2024-05-21Hooking linux内核函数(二):如何使用Ftrace hook函数
    本文是《HookingLinuxKernelFunctions,Part2:HowtoHookFunctionswithFtrace》的翻译文章前言Ftrace是一个用于跟踪Linux内核函数的Linux内核框架。但是,当我们尝试启用系统活动监控以阻止可疑进程时,我们的团队设法找到了一种使用ftrace的新方法。事实证明,ftrace允许
  • 2024-04-30ftrace uprobe原理和功能
    原文:https://blog.csdn.net/u012489236/article/details/127954817官网:https://www.kernel.org/doc/html/latest/trace/uprobetracer.htmlkprobe可以实现动态内核的注入,基于中断的方法在任意指令中插入追踪代码,并且通过pre_handler/post_handler去接收回调。另一个kprobe的同
  • 2024-04-11tracer ftrace笔记(23)—— 上层trace打印流程-TODO
    1.ATRACE_INT打印不出来分析#defineATRACE_INT(name,value)atrace_int(ATRACE_TAG,name,value)///system/core/libcutils/include/cutils/trace.hstaticinlinevoidatrace_int(uint64_ttag,constchar*name,int32_tvalue){ if(CC_UNLIKELY(atrace_is_tag_enabl
  • 2024-03-25Perfetto Trace抓取
    1.Perfetto简介Perfetto是一个用于Android系统的性能跟踪工具,可以帮助开发者分析系统性能和调试问题。Perfetto是Android10中引入的全新平台级跟踪工具。这是适用于Android、Linux和Chrome的更加通用和复杂的开源跟踪项目。在低于AndroidR的版本上面默认是
  • 2024-02-13perf与ftrace
    ftraceftrace是一种调试工具,用于了解Linux内核中的情况。如需详细了解ftrace高级功能,请参阅ftrace文档:/Documentation/trace/ftrace.txtFtrace的设计目标简单,本质上是一种静态代码插装技术,不需要支持某种编程接口让用户自定义trace行为。静态代码插装技术更加可靠,不会
  • 2024-01-23【一文秒懂】Ftrace系统调试工具使用终极指南
    【一文秒懂】Ftrace系统调试工具使用终极指南1、Ftrace是什么Ftrace是FunctionTrace的简写,由StevenRostedt开发的,从2008年发布的内核2.6.27中开始就内置了。Ftrace是一个系统内部提供的追踪工具,旨在帮助内核设计和开发人员去追踪系统内部的函数调用流程。随着Ftrace的
  • 2023-12-24将perf跟funcgraph-retval结合起来使用
    作者[email protected]概述下面是之前写的使用funcgraph-retval的文章:https://www.cnblogs.com/pengdonglin137/p/17126952.htmlhttps://www.cnblogs.com/pengdonglin137/p/17723412.html上面的文章里,都是直接通过命令行配置ftrace来使用的,过程稍微有些繁琐,linux提供
  • 2023-10-10ftrace在应用上的使用
    之前介绍通过命令行配置和使用ftrace功能,但是实际中,我们也会希望抓C/C++程序中某段代码的调度情况。笔者前不久就遇到这种问题,某个函数调用时延概率超过100ms,是为什么?这时候就需要在他们代码中使能ftrace抓执行此函数时候,任务的调度情况。观察某段代码执行过程中的情况,ftrace提供
  • 2023-08-19tracer ftrace笔记(20)—— Systrace中tag汇总
    一、视频显示1.HW_VSYNC_ON_XXX(1)类型布尔值,1表示HWVSYNC信号开关被打开,0表示开关被关闭。(2)时机HWVYSNC硬件信号被打开和关闭的时候。(3)解释HW_VSYNC_ON_XXX后面的XXX一般是一串数字,代表的是displayid,如果你的机器有外接了显示器,那么可以通过displayid
  • 2023-08-04tracer ftrace笔记(18)—— 待解问题汇总
    1.长时间卡在MSG_WINDOW_FOCUS_CHANGED条目中publicvoidhandleMessage(Messagemsg)//android/view/ViewRootImpl.javaTrace.traceBegin(Trace.TRACE_TAG_VIEW,getMessageName(msg));//这里打印条目有MSG_WINDOW_FOCUS_CHANGEDhandleMessageImpl(msg);
  • 2023-06-11ftrace学习 —— user_events的用法
    参考https://docs.kernel.org/trace/user_events.html测试程序samples/user_events/example.ctools/testing/selftests/user_events/ftrace_test.c正文通过user_event可以实现对应用程序的跟踪,类似linux内核中的tracepoint那样。相似的方法还有借助/sys/kernel/debug/tracin
  • 2023-06-05ftrace irqs跟踪器
    当中断被关闭(俗称关中断)了,CPU就不能响应其他的事件,如果这时有一个鼠标中断,要在下一次开中断时才能响应这个鼠标中断,这段延迟称为中断延迟。向current_tracer文件写入irqsoff字符串即可打开irqsoff来跟踪中断延迟。[root@linuxtracing]#pwd/sys/kernel/debug/tracing[roo
  • 2023-05-29转载-奇小葩-深入ftrace kprobe原理解析
    原文链接:https://blog.csdn.net/u012489236/article/details/127942216 Linuxkrpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术,利用kprobe技术,内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信
  • 2023-05-29转载-奇小葩- 深入ftrace uprobe原理和功能介绍
    原文链接:https://blog.csdn.net/u012489236/article/details/127954817 上一章我们学习了,kprobe可以实现动态内核的注入,基于中断的方法在任意指令中插入追踪代码,并且通过pre_handler/post_handler去接收回调。另一个kprobe的同族是kretprobe,只不过是针对函数级别的内核
  • 2023-05-29转载-奇小葩- linux性能工具--ftrace使用
    原文链接:https://blog.csdn.net/u012489236/article/details/119519361 Ftrace设计作为一个内部的tracer提供给系统的开发者和设计者,帮助他们弄清kernel正在发生的行为,它能够调式分析延迟和性能问题。对于前一章节,我们学习了Ftrace发展到现在已经不仅仅是作为一个functiontr
  • 2023-05-29转载-奇小葩-linux性能工具--ftrace框架
    原文链接:https://blog.csdn.net/u012489236/article/details/119494200 对于ftrace架构,主要来了解下内核是如何实现的,其主要包括如下内容:ringbuffer的原理和代码分析tracer(function、function_graph、irq_off)原理和代码分析traceevent1.ringBufferRingbuffer是
  • 2023-05-27tracer ftrace笔记(17)——atrace命令抓trace
    一、atrace命令解析1.帮助信息#atrace-h用法:usage:atrace[options][categories...]选项包括:-aappname为逗号分隔的cmdlines列表启用应用程序级跟踪;*是匹配任何进程的通配符-bN使用大小为NKB的跟踪缓冲区-c
  • 2023-03-03【调试】ftrace(一)基本使用方法
    简介Ftrace是LinuxKernel的官方tracing系统,支持Functiontrace、静态tracepoint、动态Tracepoint的跟踪,还提供各种Tracer,用于统计最大irq延迟、最大函数调用栈大小、调度
  • 2023-03-03【调试】ftrace(二)新增跟踪点
    内核的各个子系统已经有大量的跟踪点,如果这些跟踪点无法满足工作中的需求,可以自己手动添加跟踪点。添加跟踪点有两种方式,一种是仿照events/目录下的跟踪点,使用TRACE_EVENT
  • 2023-03-01ftrace之function及function_graph使用
    一用途(1)function主要用于跟踪内核函数的调用栈(其被调用过程)(2)function_graph主要用于跟踪内核函数内部调用流程及耗时这两个对内核性能分析的作用不大,主要用来梳理内
  • 2023-02-27一文学会ftrace的基础用法
    0.官网https://www.kernel.org/doc/html/latest/trace/ftrace.html1.ftrace是什么ftrace是linux原生的一个trace工具,最早在2.6.27引入,跟踪能力强大,可以调试和分析诸如
  • 2023-02-16让function_graph输出返回值
    最近在分析内核问题时用了function_graph,用它来分析为什么应用的某个系统调用会返回错误。在分析的时候,根据function_graph的输出确定代码执行流程,但是有时又需要知道函数
  • 2023-02-05tracer ftrace笔记(15)—— uprobe——1——Documentation/trace/uprobetracer.rst 翻译
    基于Linux-5.15=========================================Uprobe-tracer:基于Uprobe的事件追踪=========================================:作者:SrikarDronamraju概
  • 2023-02-04tracer ftrace笔记(13)—— kprobe
    基于Linux-5.15一、kprobe简介1.kprobes是为了便于跟踪内核函数执行状态的一种轻量级内核调试技术。可以在内核的绝大多数函数(非inline、非trace自身函数)中动态的