我想知道在内核模块中返回的API是什么< VNOS - module.ko>
从几个表格中了解到它不是那么直接,我们需要加载符号表来调试内核模块。
所以我所做的就是, 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.
请帮忙。
答案 0 :(得分:2)
由于我无法发表评论,我会写一个答案。 (但我知道这更多是评论部分的帖子,因为我并非100%肯定)
您必须使用调试符号编译模块。为了做到这一点,模块应该编译而不需要剥离。您可能还想尝试-g
选项并在内核CONFIG_DEBUG_INFO=y
中启用调试。
不确定它是否有效。