Powerpc构架系统内核和内核模块调试
dule->module_core
add-symbol-file $arg1 $myAddr
end
document addmodulesymbols
Adds the symbols for a module to the kernel.equires two parameters:
addmodulesymbols 0xAddress> .ko-file>
end
(说明: 定义了lsmod和addmodulesymbols 2个宏,并且定义了addmodulesymbols的帮助文档)
内核模块调试前面的步骤和内核调试完全一致,先要在start_kernel的地方设置断点,然后让内核能进行调试,接下来:
# 按DDD的
在内核起来之后→
root@mpc8349emitxgp:~# cd /root/examples/misc-modules
root@mpc8349emitxgp:~/examples/scull# insmod ./jit.ko
然后在DDD下按→
(gdb) lsmod
Address Module
0xD106FB00 jit
0xD25EE500 ipv6
(gdb) addmodulesymbols 0xd106fb00 ./jit.ko
add symbol table from file ./jit.ko at
.text_addr = 0xd106e000
(注意启动DDD的时候要在此调试模块的目录下,否则要指定jit.ko在主机上的绝对路径位置)
(gdb) b jit_currentime
(gdb)cont
在目标平台输出终端上→
root@mpc8349emitxgp:~/examples/misc-modules# cat /proc/currentime
此时执行停住了,接下来我就可以在DDD中跟踪驱动的执行了。如下图:
- VXWORKS内核分析(11-11)
- linux内核编译步骤(11-11)
- Linux内核解读入门(11-09)
- Linux内核编译过程详解(kernel2.6.7) (04-16)
- 嵌入式Linux内核移植相关代码分析(04-21)
- 什么是module 以及如何写一个module(转)(04-23)