LINUX.ORG.RU

kmem


0

0

Проблема в следующем. Приложение открывает /dev/kmem на чтение ( запуск из под рута ). Далее по определенному смещению пытается считать блок. Но функция read возвращает -1, а perror орет на Bad address. Ядро 2.4.20, без патчей, файл /dev/kmem присутствует, пермисии на него crw-r-----. Пробовал снять дамп при помощи dd - вылетает с той же ошибкой Bad address. Что делать не знаю. Заранее спасибо.

anonymous

[root@romanu Share]# dd if=/dev/kmem of=/kmem
dd: reading `/dev/kmem': Плохой адрес
0+0 входных записей
0+0 выходных записей
[root@romanu Share]#

anonymous
()
Ответ на: комментарий от anonymous

Сомневаюсь, что вам нужен kmem. Какое смещение в файле?

> dd if=/dev/kmem of=/kmem

это попытка прочитать память ядра по _виртуальному_
адресу 0. И что там может быть, кроме EFAULT?

idle ★★★★★
()
Ответ на: комментарий от idle

Сама программа считывает таблицу idt. Насколько я понимаю, она-то должна иметь доступ на чтение в памяти.

anonymous
()
Ответ на: комментарий от anonymous

В linux-2.4.10 я читал /dev/kmem/ ....сейчас облом.... даже grep AWARD /dev/kmem/ не срабатывает!!! ...плохой адрес!

anonymous
()
Ответ на: комментарий от grustnoe

Что же она должна мнетакого сказать?

anonymous
()

Спасибо всем. Разобрался сам. Прога заработала. Дело было в смещении по которому она пыталась прочитать /dev/kmem. Простая вычислительная ошибка поставила меня в тупик. Видимо не любой участок kmem можно прочитать, что можно объяснить как я полагаю, что у памяти есть свои атрибуты доступа, которые полноценно распространяются и на kmem.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.