Я видел из этого поста SO , что /proc/kallsyms
должен содержать символы динамически загружаемых модулей, а также код stati c, тогда как System.map
содержит только символы кода stati c. Однако, когда у меня cat /proc/kallsyms
у меня, похоже, есть только символы в текстовом разделе ядра (T
и t
флаги), сохраните один или два символа, например
0000000000000000 D irq_stack_union
0000000000000000 D __per_cpu_start
С другой стороны в System.map
у меня есть символы из многих разделов - по сути, все из /proc/kallsyms
, кроме символов загруженного модуля ядра.
Чтобы показать величину этой разницы, я использовал команду wc
.
user@debian:~/$ cat /boot/System.map-3.2.0-4-amd64 | wc
51256 153768 2117121
user@debian:~/$ cat /proc/kallsyms | wc
29336 92637 1161409
В чем причина этой разницы? Где находятся все символы, относящиеся к разделу данных, в моем файле /proc/kallsyms
?
Редактировать: В соответствии с запросом, здесь есть параметры конфигурации kallsyms
.
user@debian:~$ cat /boot/config-3.2.0-4-amd64 | grep KALLSYMS
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set