内核调试

转载一篇文章:http://my.oschina.net/fgq611/blog/113249 linux内核调试方法总结。

1.二分法与printk()

    AB之间有个bug,在AB之间找个中间点C,使用printk,查看bug在AC还是CB。以此类推。其中printk(“__func__”)

   设定printk的级别,八个级别分别是从1--8,其中1基本最高,只打印系统可能崩溃的信息。我们可以使用命令

echo 8 > /proc/kernel/printk;可以打印所有的消息。

在我们的系统pnfs中可以输入:

2.syslog && dmesg

cat /var/log/message   dmesg;

3.gdb调试内核。

gdb  /user/src/linux/vmlinux  /proc/kore.但是不能调试可加载模块。。。。只能调试内核的模块。

4.BUG(),BUG_ON()可能会引发oops,

  #define BUG() do { 
      printk( "BUG: failure at %s:%d/%s()! " , __FILE__, __LINE__, __FUNCTION__); 
      panic( "BUG!" );    /* 引发更严重的错误,不但打印错误消息,而且整个系统业会挂起 */ 
  }  while  (0) 
  #endif
5. 内存调试工具  MEMWATCH,
6 strace pwd.显示系统调用的trace
7.kgdb,提供了使用gdb调试内核的机制。需要两台机器,一代开发机,一台目标机,机器通过串口或以太网口相连,gdb调试器运行在开发机上。(不好用。。。)
 
 

转载于:https://www.cnblogs.com/xindufresne/p/4803263.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值