Я закончил тем, что отключил KASLR , добавив параметр nokaslr в командную строку ядра.
Однако, даже если KASLR отключено, все равно необходимо исправить смещения символов. Как предложил @Ian в одном из комментариев, я использовал команду gdb add-symbol-file . Загрузка символов с использованием смещения адреса text следующим образом:
# grep "D init_task" /proc/kallsyms
ffffffff81c16480 D init_task
# grep " _text" /proc/kallsyms
ffffffff81000000 T _text
# gdb -q -c /proc/kcore
(gdb) add-symbol-file /usr/lib/debug/lib/modules/3.10.0-862.14.4.el7.x86_64/vmlinux 0xffffffff81000000
add symbol table from file "/usr/lib/debug/lib/modules/3.10.0-862.14.4.el7.x86_64/vmlinux" at
.text_addr = 0x81000000
(y or n) y
Reading symbols from /usr/lib/debug/usr/lib/modules/3.10.0-862.14.4.el7.x86_64/vmlinux...done.
(gdb) p &init_task
$1 = (struct task_struct *) 0xffffffff81c16480 <init_task>
Работает с gdb 7.6.1 .
В любом случае, будет здорово узнать, как это сделать с включенной функцией KASLR.