应用调试
1.使用ulimit生成某个进程的内核转储(core dump),然后gdb 转储文件core_xx即可,使用gdb的bt命令打印栈帧(即调用栈信息)。
2.gcc编译程序时加-g选项(或CFLAGS=-WALL -g......),gdb生成的带有调试信息的目标程序。
内核调试:
1.内核进程崩溃(即kernel panic):据内核打印出的oops消息定位(本质是是调用BUG和BUG_ON打印出调用栈:printk("BUG: failure at %s:%d/%s()! ", __FILE__, __LINE__, __FUNCTION__); )。
2.kdb(内核补丁+kernel hacking选项)与kgdb(vmlinux+kernel hacking选项+两天机器)。
3.demsg或cat /proc/kmsg
未完待续。。。
阅读(822) | 评论(0) | 转发(0) |