![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux Kernel
zhaojia92
这个作者很懒,什么都没留下…
展开
-
解析kernel 2.6.24使用NMI中断对Hard lock的处理
本文针对x86架构linux kernel检测hard lock的方法进行了分析。基于kernel2.6.24源码解析了从NMI中断触发到oops发生的处理流程。其使用时钟计数器判断是否发生hard lock。原创 2020-03-08 14:55:23 · 1668 阅读 · 1 评论 -
Linux kernel打印栈信息方法
在kernel代码的任意位置直接调用dump_stack方法即可。dump_stack已经包含在内核符号表中,并在include/linux/kernel.h中被声明。获取栈信息的原理是使用ebp逐层回溯。dump_stack函数在arch/x86/kernel/traps_32.c中定义(kernel 2.6.24)如下:/* * The architecture-inde...原创 2019-10-20 22:03:00 · 3710 阅读 · 0 评论 -
Linux kernel调试方法--使用qemu+eclipse
此文章为原创,可以转载,请注明来源:https://blog.csdn.net/zhaojia92 kernel是一个庞大的C工程,传统使用gdb+qemu工具调试,但gdb太过简陋,查看源码不方便。本着效率优先的原则,选择eclipse作为kernel的开发环境,可以更方便修改调试kernel代码。下面给出eclipse+qemu调试kernel代码的方法。一....原创 2019-02-17 16:33:26 · 2051 阅读 · 0 评论 -
搭建Linux kernel调试环境-busybox构建最小根文件系统
调试Linux kernel时经常使用printk将信息打印到内核消息ring buffer中,为了方便查看内核相关Log,并减少不必要的干扰,有必要构建一个小型根文件系统,在该系统内进行模块加载、Log查看、状态监控等kernel调试。busybox是一个功能完备的Linux命令行工具集,又可作为init进程配置文件系统,在嵌入式系统中应用广泛。本文记录了使用busybox构建简易...原创 2019-09-11 01:46:12 · 2238 阅读 · 0 评论