Мне надо иметь возможность в случае если Linux машина зависнет (насмерть) из-за бага в ядре, иметь возможность прочитать память.
Как я понимаю, сделать kernel dump зависнувшего ядра не получится скорее всего.
Можно ли для этого использовать kernel debugger?
Если да то какой лучше? Я пока видел дебаггеры от Novell и SGI.
Linux Kernel debugger
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- aldep
- Маньяк
- Сообщения: 1593
- Зарегистрирован: 18 фев 2003, 08:06
- Откуда: Toronto
- Контактная информация:
- ajkj3em
- Маньяк
- Сообщения: 2063
- Зарегистрирован: 12 ноя 2006, 06:53
Re: Linux Kernel debugger
Magic SysReq mozhet pomoch, no po-horoshemu takie dela otlazhivajutsja
starymi dobrymi printf'ami. Na krajnjak, esli visnet ne v hardware irq, to
mozhno na keyboard interrupt povesit' svoj handler i dump'at' stack pri
nazhatii na opredelennuju kombinaciju knopok (ponjatno chto na multi-cpu
machines nado budet dumpat' stek na vseh CPU).
Esli jadro visnet (chto v principe dazhe v processe razrabotki dolzhno
sluchatjsja _krajne_ redko), to proishodit wto obychno po odnoj iz dvuh
prichin - deadlock ili busy loop. Pervye elementarno vylavlivajutsja
perepisyvaniem spinlock_xxx macrosov, vtorye - vuchitkoj koda. Hotja
komu kak udobnee .. komu i debugger nevesta :)
Sorry za translit. Mu***atsja s wtimi idiotskimu TRN tagami netu vremeni.
starymi dobrymi printf'ami. Na krajnjak, esli visnet ne v hardware irq, to
mozhno na keyboard interrupt povesit' svoj handler i dump'at' stack pri
nazhatii na opredelennuju kombinaciju knopok (ponjatno chto na multi-cpu
machines nado budet dumpat' stek na vseh CPU).
Esli jadro visnet (chto v principe dazhe v processe razrabotki dolzhno
sluchatjsja _krajne_ redko), to proishodit wto obychno po odnoj iz dvuh
prichin - deadlock ili busy loop. Pervye elementarno vylavlivajutsja
perepisyvaniem spinlock_xxx macrosov, vtorye - vuchitkoj koda. Hotja
komu kak udobnee .. komu i debugger nevesta :)
Sorry za translit. Mu***atsja s wtimi idiotskimu TRN tagami netu vremeni.
- Groundhog
- Графоман
- Сообщения: 5099
- Зарегистрирован: 20 авг 2005, 16:36
- Откуда: Vancouver
Смотря как зависнет а то и никакие примочки не помогут.
Смотря какой процессор и откуда грузишься.
Чтение памяти помогает при отладке девайс драйверов,
когда физические адреса смысл имеют, иначе по таблицам
лазить ухихикаешся.
А если уж память читать хочется - пришпандорь к загрузчику
свою читалку - как кернел неправильный лод операции
словит - в загрузчик переходи и читай/писай на здоровье.
Смотря какой процессор и откуда грузишься.
Чтение памяти помогает при отладке девайс драйверов,
когда физические адреса смысл имеют, иначе по таблицам
лазить ухихикаешся.
А если уж память читать хочется - пришпандорь к загрузчику
свою читалку - как кернел неправильный лод операции
словит - в загрузчик переходи и читай/писай на здоровье.
- aldep
- Маньяк
- Сообщения: 1593
- Зарегистрирован: 18 фев 2003, 08:06
- Откуда: Toronto
- Контактная информация:
Я не отлаживаю код, так что фиксить мне актуально. Надо именно наиболее надежным образом прочитать память. Причем память ядра, а не пользовательских процессов.Magic SysReq mozhet pomoch, no po-horoshemu takie dela otlazhivajutsja
starymi dobrymi printf'ami.
А где-то есть примеры кода?А если уж память читать хочется - пришпандорь к загрузчику
свою читалку - как кернел неправильный лод операции
словит - в загрузчик переходи и читай/писай на здоровье.
- Groundhog
- Графоман
- Сообщения: 5099
- Зарегистрирован: 20 авг 2005, 16:36
- Откуда: Vancouver
- ajkj3em
- Маньяк
- Сообщения: 2063
- Зарегистрирован: 12 ноя 2006, 06:53
а, понятно, не так понял, сорриaldep писал(а):Я не отлаживаю код, так что фиксить мне актуально. Надо именно наиболее надежным образом прочитать память. Причем память ядра, а не пользовательских процессов.Magic SysReq mozhet pomoch, no po-horoshemu takie dela otlazhivajutsja
starymi dobrymi printf'ami.
* перевод с транслита
- aldep
- Маньяк
- Сообщения: 1593
- Зарегистрирован: 18 фев 2003, 08:06
- Откуда: Toronto
- Контактная информация:
- Groundhog
- Графоман
- Сообщения: 5099
- Зарегистрирован: 20 авг 2005, 16:36
- Откуда: Vancouver
- Ильгиз
- Пользователь
- Сообщения: 55
- Зарегистрирован: 13 сен 2005, 12:00
- Откуда: Уфа - Китченер
The Linux Kernel Crash Dump patch to the kernel doesn't read arbitrary memory regions. I could store a kernel crash back trace to a floppy disk.