使用gdb调试Linux内核模块

shim_mang

我想知道内核模块<vnos-module.ko>中API返回的内容。

从几种形式中得知不是那么简单,我们需要加载符号表来调试内核模块。

因此,我所做的就是:1.尝试查找内核模块的.text .bss和.data节地址。2.在gdb中使用add-symbol-file命令添加符号表文件。

但是我收到错误消息,说“正在从/fabos/modules/vnos-module.ko读取符号...(未找到调试符号)...完成。”

我在这里想念什么吗?

root@sw0:/sys/module/vnos_module/sections# cat .text .data .bss 
0xf7f7f000
0xf7fb7a30
0xf7fc3da4

root@sw0:/sys/module/vnos_module/sections# gdb /fabos/modules/vnos-module.ko
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /fabos/modules/vnos-module.ko...(no debugging symbols found)...done.
 add-symbol-file /fabos/modules/vnos-module.ko 0xf7f7f000 -s .data 0xf7fb7a -s .bss 0xf7fc3da4
add symbol table from file "/fabos/modules/vnos-module.ko" at
        .text_addr = 0xf7f7f000
        .data_addr = 0xf7fb7a30
(y or n) y

Reading symbols from /fabos/modules/vnos-module.ko...(no debugging symbols found)...done.

请帮忙。

粗糙的番茄

由于我无法发表评论,因此我将其作为答案。(但我知道这更多是评论部分的帖子,因为我不确定自己对此有100%的肯定)

您必须使用调试符号来编译模块。为此,应在不剥离的情况下编译模块。您可能还需要try-g选项并在内核中启用调试功能CONFIG_DEBUG_INFO=y

不知道它是否会工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章