使用kgdb调试内核之模块调试

本文介绍了如何使用kgdb调试内核模块,包括模块编译时加入-g选项,将模块源码和编译结果拷贝到调试机,通过insmod加载模块,查看并插入模块的符号表,以及在调试过程中遇到的问题和解决思路。
摘要由CSDN通过智能技术生成

        昨天搭建的kgdb调试环境,今天面临的第一个问题就是调试我的模块。调试内核根据上一篇文章的介绍已经够了http://blog.csdn.net/zr_lang/article/details/8107015,但是调试模块还需要一些额外的工作。下面针对用kgdb调试内核模块的问题的重点部分简要说明一下。

首先,有一个小技巧先说明一下,那就是如果你想在gdb没有进入断点的情况下从目标机运行中将主动权转回给gdb的话(这个比较常用的),可以在命令行下这样写:

                echo g>/proc/sysrq-trigger

        这样就可以切换回gdb主动控制了。(谁还有什么办法可以分享一下,我很想知道,谢谢)

        下面开始模块的调试。

        1.   模块的编译。

        在目标机上 的模块的编译要借助你编译的这个已安装内核的代码,把它放到你指定的目录下,然后在模块编译的时候指向这个目录。需要注意的是,模块的编译需要加入-g选项。如果你是写的Makefile,那么可以在Makefile的开头加入

                ccflags-y += -O -g
        这样一句就会让编译时加入gdb调试所需的信息了如果你直接使用gcc那就不用我多说了。

        2.  模块拷备。

        把你写的模块的源码和编译出的结果也放到调试机上,拷贝的地方要和在目标机上编译的所在的路径相同,这样符号名才能完好的对应上,比如两个系统的模块源码目录都在/home/zrlang/mymodule/里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值