
linux调试
文章平均质量分 91
cocoti
这个作者很懒,什么都没留下…
展开
-
踩内存问题分析工具
踩内存问题,大家都知道,是一个比较难分析的问题。踩内存问题被发现,通常是程序崩溃的时候,能够生成coredump分析,知道是哪个内存被踩了,但通常是很难分析出是哪段代码出现了踩内存的问题。本文会介绍几种分析踩内存问题的工具,有些工具是最近发现的,我还没有大量使用过,所以只是个简单的介绍,各位看官自行判断是否实用。文章写的比较匆忙,内容可能会不太完整,请各位见谅。发现踩内存问题后,我们可以通过gdb来起出现问题的应用程序,然后对出现问题的变量进行watch,每次这个变量被读取/修改时,程序都会暂停,我们就可以原创 2022-06-23 16:48:45 · 3499 阅读 · 0 评论 -
使用bcc来调试你的代码
bcc之前有一篇介绍:bcc/ebpf使用介绍使用bcc,除了官方已经提供的一些工具(主要是对系统的调试,例如io、内存、网络、cpu),我们还可以用它来调试我们的应用代码。我们可以把调试手段分为两类:1. 静态调试 2. 动态调试。什么意思呢?我们以游戏为例,我们在游戏中进入战斗之前,通常会先对自己的装备、药品等做一些准备,进入战斗之后,这些装备、药品就可以直接使用了,这就是静态调试,也就是预先准备好的调试手段。但是,在战斗的过程中,我们可能发现我们需要其他装备,或者获得了更好的装备需要更换上去,那么我原创 2022-06-22 17:40:47 · 1175 阅读 · 0 评论 -
bcc/ebpf使用介绍
ebpf是linux trace框架的一部分内容,trace的介绍可以参考linux tracers使用介绍。trace框架允许我们在内核态/用户态的代码中加钩子,并定义了一些预置的钩子函数,实现一些基本的调试功能。而对于需要比较灵活的处理的情况,可以使用ebpf,允许用户自定义钩子函数,进行例如信息的过滤、统计、计算等处理。bcc是一个工具包,使用python来对ebpf进行封装,以便更加方便的使用ebpf,并内置了很多已经写好的工具,bcc的github地址是:https://github.com/io原创 2022-06-08 09:28:47 · 3147 阅读 · 0 评论 -
perf与火焰图使用介绍
一、介绍perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些数据来对程序性能进行分析。perf可以统计或采样的event有很多,如果我们要分析cpu,那么我们可以使用cpu-cycles、cpu-clock来衡量占用cpu的程序的分布情况,还可以通过cache-misses、page-faults、branch-misses等event来分析造成cpu占用高的底原创 2022-04-11 13:45:02 · 6354 阅读 · 1 评论 -
linux tracers使用介绍
一、tracers简介在linux的kernel/trace目录下,有一些用于调试内核的工具,也就是tracers,包括:tracepoint,或者也叫做event trace。tracepoint需要手动在代码中增加,默认情况下功能类似于printk,就是用于打印信息。但在trace框架中,你可以通过操作/sys/kernel/debug/tracing下的对应文件来控制打印的开关、过滤(例如只打印特点值时的信息),也可以配perf、ebpf进行使用。ftrace/function tracer。原创 2022-03-28 10:25:30 · 5335 阅读 · 1 评论