Почему в установленной системе пакета отладки ядра Linux требуется две копии модуля ядра? - PullRequest
0 голосов
/ 19 ноября 2018

На машине Linux с установленными пакетами отладки ядра, я мог видеть, что две копии модулей ядра находятся в двух местах, как указано ниже:

  1. /lib/modules/<$KERNELVERSION>/kernel/
  2. /usr/lib/debug/lib/modules/<$KERNELVERSION>/kernel/

У меня есть сомнения, какой модуль будет выполняться и для чего нужны два модуля.

1 Ответ

0 голосов
/ 20 ноября 2018
  1. /lib/modules/<$KERNELVERSION>/kernel/ - модули, которые будут загружены с ядром (без символов отладки)

Пример:

ll /lib/modules/4.15.0-20-generic/kernel/fs/xfs/xfs.ko<br> -rw-r--r-- 1 root root 1883966 Apr 24 2018 /lib/modules/4.15.0-20-generic/kernel/fs/xfs/xfs.ko

  1. /usr/lib/debug/lib/modules/<$KERNELVERSION>/kernel/ - модули с символами отладки

Пример:

ll /usr/lib/debug/lib/modules/4.15.0-20-generic/kernel/fs/xfs/xfs.ko<br> -rw-r--r-- 1 root root 40247182 Apr 24 2018 /usr/lib/debug/lib/modules/4.15.0-20-generic/kernel/fs/xfs/xfs.ko

Как видите, это 1,8 МБ против 40 МБ. Если вы сравните выходные данные readelf -S <module>, то в модуле отладки

вы увидите дополнительные разделы, такие как debug_aranges, debug_info, debug_ranges и т. Д.
...