После того, как я загрузил модуль ядра Linux с помощью
[email protected]:$ insmod mmaptest.ko
Я могу проверить, что он загружен через
[email protected]:$ cat /proc/modules
mmaptest 12727 0 - Live 0x0000000000000000 (OF)
но все сегменты перечислены с адресами 0x00.
[email protected]$:$ systool -vm mmaptest
Module = "mmaptest"
Attributes:
coresize = "12727"
initsize = "0"
initstate = "live"
refcnt = "0"
srcversion = "EABEF6F90BEAAD0D15B576A"
taint = "OF"
uevent = <store method only>
Parameters:
count = "0"
Sections:
.bss = "0x0000000000000000"
.data = "0x0000000000000000"
.exit.text = "0x0000000000000000"
.gnu.linkonce.this_module= "0x0000000000000000"
.init.text = "0x0000000000000000"
.note.gnu.build-id = "0x0000000000000000"
.rodata = "0x0000000000000000"
.rodata.str1.1 = "0x0000000000000000"
.rodata.str1.8 = "0x0000000000000000"
.smp_locks = "0x0000000000000000"
.strtab = "0x0000000000000000"
.symtab = "0x0000000000000000"
.text = "0x0000000000000000"
__mcount_loc = "0x0000000000000000"
__param = "0x0000000000000000"
Таким образом, когда я пытаюсь загрузить символы из текстового сегмента модуля с неправильными адресами (?), я получаю:
(gdb) add-symbol-file /home/mmaptest/mmaptest.ko 0x00
add symbol table from file "/home/mmaptest/mmaptest.ko" at
.text_addr = 0x0
(y or n) y
Reading symbols from /home/mmaptest/mmaptest.ko...(**no debugging symbols found**)...done.
Это касается самого модуля или загрузки кода ядра? Почему все адреса: 0x000000000000?