上一页 1 2 3 4 5 6 7 8 9 10 ··· 15 下一页
摘要: 1 概述 linux内核包括进程管理、内存管理、中断管理、设备驱动、同步机制等各种模块,它们共同运行在一个共享的地址空间中,因此在运行中一旦出现问题,彼此之间可能具有千丝万缕的联系。 而且与用户态不同,内核还需要与形形色色的硬件打交道,因此对于某些较为诡异的问题,除了软件以外还可能受到硬件的影响。如 阅读全文
posted @ 2023-04-30 11:10 学习,积累,成长 阅读(543) 评论(0) 推荐(0) 编辑
摘要: crash简介 crash是redhat的工程师开发的,主要用来离线分析linux内核转存文件,它整合了gdb工具,功能非常强大。可以查看堆栈,dmesg日志,内核数据结构,反汇编等等。 crash支持多种工具生成的转存文件格式,如kdump,LKCD,netdump和diskdump,而且还可以分 阅读全文
posted @ 2023-04-30 10:35 学习,积累,成长 阅读(1869) 评论(0) 推荐(0) 编辑
摘要: kdump机制 简介 Kdump是在系统崩溃、死锁或死机时用来转储内存运行参数的一个工具和服务,是一种新的crash dump捕获机制,用来捕获kernel crash(内核崩溃)的时候产生的crash dump。 Kdump 使用两个内核:生产内核和捕获内核。生产内核是一个普通内核,它使用特殊的 阅读全文
posted @ 2023-04-07 22:46 学习,积累,成长 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 前言 上一节介绍了kprobe的基本概念,下面我们将使用几个具体的例子,看下kprobe在实际使用中有那些应用场景。 kprobe 内核的samples/kprobe目录下有kprobe相关的例子,我们以这些例子为基础,简单修改下。 查看函数的入参 我们所有的例子都是探测do_sys_open() 阅读全文
posted @ 2023-04-07 22:41 学习,积累,成长 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 最近看到一个问题,如何获取当前系统的文件类型? 这个时候就要介绍下/proc/mounts文件:这个文件以/etc/mtab文件的格式给出当前系统所安装的文件系统信息。同时也能反映出任何手工安装从而在/etc/mtab文件中没有包含的文件系统。 我们可以通过cat /proc/mounts查看挂载文 阅读全文
posted @ 2023-04-07 22:37 学习,积累,成长 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 简介 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用、何时被调用、执行是否正确以及函数的入参和返回值是什么等等。 比较简单的做法是在内核代码对应的函数中添加日志打印信息,但这种方式往往需要重新编译内核或模块,重新启动设备之类的,操作较为复杂甚至可能会破坏原有的代码执行过 阅读全文
posted @ 2023-04-07 22:33 学习,积累,成长 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 简介 perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些数据来对程序性能进行分析。 perf可以统计或采样的event有很多,如果我们要分析cpu,那么我 阅读全文
posted @ 2023-04-07 22:29 学习,积累,成长 阅读(754) 评论(0) 推荐(0) 编辑
摘要: 之前使用ftrace的时候需要一系列的配置,使用起来有点繁琐,这里推荐一个ftrace的一个前端工具,它就是trace-cmd trace-cmd安装教程 安装trace-cmd及其依赖库 git clone https://git.kernel.org/pub/scm/libs/libtrace/ 阅读全文
posted @ 2023-04-07 22:27 学习,积累,成长 阅读(1209) 评论(0) 推荐(0) 编辑
摘要: 内核的各个子系统已经有大量的跟踪点,如果这些跟踪点无法满足工作中的需求,可以自己手动添加跟踪点。 添加跟踪点有两种方式,一种是仿照events/目录下的跟踪点,使用TRACE_EVENT() 宏添加。另一种是参考内核目录samples/trace_events添加。本文对这两种方式分别进行介绍。 使 阅读全文
posted @ 2023-03-03 22:36 学习,积累,成长 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 简介 Ftrace是Linux Kernel的官方tracing系统,支持Function trace、静态tracepoint、动态Tracepoint的跟踪,还提供各种Tracer,用于统计最大irq延迟、最大函数调用栈大小、调度事件等。 Ftrace还提供了强大的过滤、快照snapshot、实 阅读全文
posted @ 2023-03-03 22:35 学习,积累,成长 阅读(1578) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 15 下一页