2014-11-29 5 views
2

Я не хочу найти адрес ядра таблицы системных вызовов. Обычно я делаю это по grepping sys_call , но в одной системе я могу видеть адрес , но в другом случае он не отображает запись.linux kallsyms R символ не отображается

[email protected]:~# cat /proc/kallsyms | grep sys_call 
ffffffff8122aa90 t proc_sys_call_handler 
ffffffff81726432 t ret_from_sys_call 
ffffffff81726644 T int_ret_from_sys_call 
ffffffff81728146 t sysexit_from_sys_call 
ffffffff81728386 t sysretl_from_sys_call 
ffffffff8172858e t ia32_ret_from_sys_call 
**ffffffff81801400 R sys_call_table** 
ffffffff81809cc0 R ia32_sys_call_table 
[email protected]:~# 

нет таблицы системных вызовов ... почему бы не показать символ типа R ??

/ $ cat /proc/kallsyms | grep sys_call 
ffffffff8119c230 t proc_sys_call_handler 
ffffffff817a1a57 t ret_from_sys_call 
ffffffff817a1c50 T int_ret_from_sys_call 
ffffffff817a2cb8 t sysexit_from_sys_call 
ffffffff817a2ed8 t sysretl_from_sys_call 
ffffffff817a30be t ia32_ret_from_sys_call 
/$ 
/$ 

В каком случае это может произойти? Некоторые советы были бы хорошими спасибо

+0

попробовать с 'пользователя root' в другой системе. –

+0

не работает :( – daehee

ответ

1

Вы должны заглянуть в версию ядра в обоих случаях, уточните у uname -r.

Первоначально он был экспортирован в более ранние версии ядра 2.4.x. Первоначально это было «EXPORT_SYMBOL (sys_call_table)»; line из linux/kernel/ksyms.c для sys_call_table от правильного экспорта, а затем был сделан статическим и удалил IMU.

Теперь это было экспортировано снова в некоторых из последних ядер (в некоторой версии> 3.3.x). Я бы рекомендовал копать в LXR, чтобы проверить детали.

+0

спасибо ~! Это полезный – daehee

0

Вы должны проверить, является ли текущее ядро ​​скомпилировано с опцией CONFIG_KALLSYMS_ALL = у

 Смежные вопросы

  • Нет связанных вопросов^_^