随笔-15  评论-10  文章-1  trackbacks-0
最近在linux内核态下编写、调试代码,一点心得是:

1、kgdb比较难使用(环境比较难搭建,常死机),但是偶尔用一下还是挺不错的
   大致情况是:使用kgdb调时需要有2台主机,需要编译一份打了kgdb补丁的内核(具体看相关资料)

2、使用printk还是比较方便的,
   日志一般是被打印到/var/log/messages中(当然这个是可以配置的)
   比较喜欢的命令是
   tail -f /var/log/messages |grep xxx
   demsg -c
   vi /var/log/messages

3、用户态下通过字符设备调用ioctl获取调试信息。这种情况下一般是程序设计阶段就已经有考虑到

4、通过/proc或/sysfs导出和设置属性的方式。使用这种方式可以直接通过shell脚本跟内核交互。
   可以参考:
   1) Documentation/kobject.txt
   2) http://www.linux.it/~rubini/docs/sysfs/sysfs.html

posted on 2007-01-27 01:56 hzb 阅读(400) 评论(1)  编辑 收藏 引用

评论:
# re: 关于Linux内核下调试代码的一些见解 2007-06-15 23:46 | benny
补充一个 -- 通过objdump来定位问题

编译时在加上-g选项把代码编入.o文件,然后再通过下面的方式从.o文件中
导出机器码和汇编
objdump -j .text -Sl xxx.o > mydump.txt
当内核打堆栈的时候这个文件mydump.txt就可以定为到具体代码的那一行
出现问题了。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理