Отладка модуля ядра Linux с использованием gdb

c linux linux-kernel gdb

3876 просмотра

1 ответ

98 Репутация автора

Я хотел знать, что API возвращает в модуле ядра .

Из нескольких форм узнайте, что это не так просто, нам нужно загрузить таблицу символов для отладки модуля ядра.

Итак, все, что я сделал, это 1. попытался найти адрес раздела .text .bss и .data модуля ядра. 2. Добавьте файл таблицы символов с помощью команды add-symbol-file в gdb.

Но я получаю сообщение об ошибке "Чтение символов из /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.

Пожалуйста помоги.

Автор: shim_mang Источник Размещён: 18.07.2016 07:38

Ответы (1)


2 плюса

315 Репутация автора

Решение

Поскольку я не могу комментировать, я напишу как ответ. (но я знаю, что это больше пост в разделе комментариев, так как я не уверен на 100% в этом)

Вы должны скомпилировать свой модуль с отладочными символами. Для этого модуль должен быть скомпилирован без зачистки. Вы также можете попробовать -gопцию и включить отладку в вашем ядре CONFIG_DEBUG_INFO=y.

Не уверен, что это сработает.

Автор: RoughTomato Размещён: 19.07.2016 07:38
Вопросы из категории :
32x32