linux下用GDB调试可加载模块
来源:互联网 发布:沙恭尼 知乎 编辑:程序博客网 时间:2024/06/05 03:32
参考文章:http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/developers-handbook/kerneldebug-kld.html
这篇文章主要是对参考文章的简单整理,大同小异。
首先,需要在编译模块时加入调试信息。两种方式,一种是编译时使用“make COPTS-g”,另一种是用“gcc -g”作为“gcc”的别名。
第二步,插入模块,找到模块的加载位置。原文是用kldstat命令,linux下没找到,但是可以通过
“cat /proc/modules | grep test”(假设模块名称为test.ko,注意不要带".ko")找到模块的加载地址,如下图所示:
第三步,找到代码段(.text段)的偏移量,如下图所示:
偏移量是.text对应的行中第四个十六进制字段(或者说从左往右数第六个字段)是.text段在文件中的偏移量。将这一偏移量与模块中的加载地址相加,就可以找到模块的代码在重定向之后的地址了。在我们的例子中,可以得到0xffffffffa001b000 + 0x00000040 = 0xFFFFFFFFA001B040。
最后的操作如下图所示:
- linux下用GDB调试可加载模块
- linux下用GDB调试可加载模块
- linux gdb调试可加载内核模块
- gdb调试动态加载模块
- LINUX下GDB调试
- LINUX下GDB调试
- LINUX下GDB调试
- LINUX下GDB调试
- LINUX下GDB调试
- linux下gdb调试
- Linux下GDB调试
- LINUX下GDB调试
- LINUX下GDB调试
- LINUX下GDB调试
- Linux下GDB调试
- Linux 下GDB调试
- linux下GDB调试
- linux下GDB调试
- POJ 2694 逆波兰表达式
- linux编程--fork() 与vfork() 的区别
- Java连接MYSQL数据库的连接步骤 笔记
- Java学习笔记之异常的定义和处理
- IBM面试题
- linux下用GDB调试可加载模块
- JAVA APP——密码加密后端存储
- Ubuntu系统开机后显示器提示“不能显示此视频模式,请将电脑显示输入设置为1920×1080@60Hz”
- arm嵌入式linux qt入门问答,很经典!!
- log4net 修改日志输出格式的绝对文件路径为相对文件名
- ZOJ 3223 Journey to the Center of the Earth 【二维最短路】
- OS X Mountain Lion 系统配置 Apache+mysql + php
- 关闭页面时不出现询问直接关闭_js代码
- 字符串编辑距离(C递归实现)