- 博客(6)
- 收藏
- 关注
原创 你所不知道的那些细节-Systemtap-malloc
我在学习使用Systemtap解决实际问题,比如内存泄漏。刚开始就遇到问题:我在__libc_malloc 打探针,发现malloc第一次调用会触发两次探针。按理来说,我只调用了一次啊(预期应该是只触发一次探针)。来看我的stp,和test.c:我的测试程序 test.c :int main()free(p);return 0;运行malloc.stp后的打印:两次一模一样的堆栈??咋回事?我一开怀疑Systemtap是不是出错了。然后,怎么折腾也是两次。
2024-03-26 18:06:25
597
原创 鲁班猫4-扩容文件系统
上一篇讲了在板子上用Systemtap 生成火焰图和如何用systemtap调试内核崩溃。之前讲的过程板子里缺的内容都是通过PC拷贝到板子上的。今天补充讲一下如何重新制作文件系统和整个升级包。你会说野火文档里有啊,你说了这句话,那就说明你还不知道“你所不知道的那些细节”。先说一下我过程总结的一些问题:1. 原生的rootfs.img boot.img 容量太小,拷贝不了大文件进去。2. 如何制作deb包3. 如何重新分区。4. 一些怪异问题。
2024-03-21 17:15:27
2461
1
原创 Systemtap查找鲁班猫4内核崩溃原因
打印的堆栈很多,我往前翻了,大致发现没死的都带有ext4_*,那么就是普通的文件系统grep没事,当x0=0xc8时,是proc文件系统,因为你会看到死的堆栈 vfs_read调用的是proc_reg_read。看来原生驱动还是不够robust,你该在proc_iep_show的时候判断一下iep_drvdata1有没有被初始化啊,大哥。终于找到你了节点是iep, 是/proc/iep . 我运行了下 cat /proc/iep, 果然预料之中的崩溃了。那么看下在proc的哪里读的时候死了。
2024-03-15 15:12:35
1204
1
原创 你所不知道的那些细节-Systemtap-火焰图
上一篇写了在鲁班猫4上移植Systemtap(非install),并选择了在PC上用stap编译ko, 板子用staprun运行的使用方式。此篇,主要讲使用systemtap生成火焰图。并顺带讲讲直接在板子上运行stap使用方式。先说一下我移植过程总结的一些问题:1. 在板子上直接使用stap,板子缺少的东西。2. 火焰图的生成。今天的内容少,打字还是挺累的。
2024-03-13 18:40:40
2001
1
原创 你所不知道的那些细节-Systemtap移植
不多啰嗦,直接进入主题:你可以说:鲁班猫上都能运行ubuntu了,直接apt-get install 多简单。如果你有这种想法,你可以看看我第一篇文章“鲁班猫4-环境搭建”,假如你一直是这种思维,那么你永远也不会知道“你所不知道的那些细节”。先说一下我移植过程总结的一些问题:1. 交叉编译没有生成stap, 只有staprun.2. systemstap的两种用法。3. stp脚本的编写,编译。4. ./staprun backtrace.ko 居然崩溃了?(很有趣)
2024-03-07 18:24:10
1250
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人