- 拿到vmcore后,用strings解析其中的内核版本:
strings xxx | less
- 找到对应版本的包,kernel-debuginfo-<版本>.rpm,并解析出文件:
rpm2cpio kernel-debuginfo-<3.10.0-xxx>.rpm | cpio -div
- 拷贝出vmlinux
cp ./lib/debug/lib/modules/3.10.0-xxx.x86_64/vmlinux ../
- 分析vmcore
./crash vmcore vmlinux
- 添加组件(如果自己写了或者有额外的)
extend crash/extensions/xxx.so
如(自己写的代码showcg工具):
crash> showcg ffff887db397caa0
subsys: cpuset cgroup: /controller
subsys: cpu_cgroup cgroup: /controller
subsys: cpuacct cgroup: /controller
subsys: mem_cgroup cgroup: /controller
subsys: devices cgroup: /tianji.slice/tianji.service
subsys: freezer cgroup: /
subsys: net_cls cgroup: /
subsys: blkio cgroup: /
subsys: perf cgroup: /
subsys: hugetlb cgroup: /
本文介绍如何从vmcore文件中解析内核版本,包括使用strings命令查找内核版本,下载并解析对应的kernel-debuginfo包,以及利用crash工具进行vmcore分析的过程。
1400

被折叠的 条评论
为什么被折叠?



