diff --git a/ru_RU.KOI8-R/books/faq/book.sgml b/ru_RU.KOI8-R/books/faq/book.sgml index b35adbbe84..0e6226e77e 100644 --- a/ru_RU.KOI8-R/books/faq/book.sgml +++ b/ru_RU.KOI8-R/books/faq/book.sgml @@ -10,7 +10,7 @@ -$FreeBSD: doc/ru_RU.KOI8-R/books/faq/book.sgml,v 1.22 1999/11/27 10:48:51 andy Exp $ +$FreeBSD: doc/ru_RU.KOI8-R/books/faq/book.sgml,v 1.23 1999/12/16 05:00:43 andy Exp $ Этот документ является так называемым FAQ (Frequently Asked Questions), то есть списком Часто Задаваемых Вопросов по FreeBSD версий 2.X @@ -8946,12 +8946,10 @@ Cc: current@FreeBSD.org - - - + Зачастую люди приводят подобные аварийные сообщения, на редко кто - утруждается привести соотвествие указателя инструкций с функцией в - таблице символов ядра. + утруждается привести соотвествие указателя инструкций с функцией в + таблице символов ядра. Лучшим способом выяснить причину, вызвавшую аварийный останов, является создание аварийного дампа системы, а затем использование @@ -8965,112 +8963,72 @@ Cc: current@FreeBSD.org Во всяком случае, обычно я использую такой способ: - + + + Отредактируйте конфигурационный файл ядра, добавив строку + 'options DDB', если вам зачем-то понадобился встроенный отладчик. + (Я использую его в основном для указания точек останова, если + подозреваю возникновение бесконечных циклов.) + - -Отредактируйте конфигурационный файл ядра, добавив строку - 'options DDB', если вам зачем-то понадобился встроенный отладчик. - (Я использую его в основном для указания точек останова, если - подозреваю возникновение бесконечных циклов.) - - + + Выполните config -g KERNELCONFIG для создания + каталога построения ядра. + - -Выполните config -g KERNELCONFIG для создания каталога - построения ядра. - - + + cd /sys/compile/KERNELCONFIG; make + - -cd /sys/compile/KERNELCONFIG; make - - + + Дождитесь окончания компиляции ядра. + - -Дождитесь окончания компиляции ядра. - - + + make install + - -cp kernel kernel.debug - - - - -strip -d kernel - - - - -mv kernel /kernel.orig/ - - - - -cp kernel / - - - - -reboot - - - - + + reboot + + - - - -[Замечание: Так как теперь ядра FreeBSD 3.x по умолчанию - имеют формат Elf, вы должны использовать команду strip -g - вместо strip -d]. Если по какой-то причине ваше ядро всё ещё - имеет формат a.out, используйте команду strip -aout -d.] - - - -Заметьте, что ВАМ НЕ НУЖНО ЗАГРУЖАТЬ ЯДРО С ОТЛАДОЧНОЙ - ИНФОРМАЦИЕЙ. Ядро, откомпилированное с ключом , может - занимать порядка 10МБ. Вам не нужно загружать этот огромный образ: - он вам пригодится позже для gdb(1)gdb(1) требует - таблицу имён). Вместо этого просто сохраните полный образ и создайте - ещё один, удалив отладочную информацию командой strip -d. Именно - этот образ вам и нужен для загрузки. - - - -Чтобы включить сброс аварийного дампа, вам нужно отредактировать - файла /etc/rc.conf, чтобы dumpdev указывало на раздел - подкачки. В этом случае скрипты rc(8) будут вызывать команду - dumpon(8) для включения создания аварийных дампов. Вы можете - запустить команду dumpon(8) вручную. После аварийной остановки - аварийный дамп может быть получен с помощью программы - savecore(8); если значение переменной dumpdev было - установлено в /etc/rc.conf, скрипты rc(8) запустят - savecore(8) автоматически и поместят аварийный дамп в каталог - /var/crash. - - - + +В процессе выполнения команды &man.make.1; будут построены два ядра, + kernel и kernel.debug. + kernel будет установлен как + /kernel, тогда как kernel.debug + может быть использован в качестве источника отладочной информации для + gdb(1). + +Чтобы включить сброс аварийного дампа, вам нужно отредактировать файл + /etc/rc.conf так, чтобы устройство + dumpdev указывало на раздел подкачки. В этом + случае скрипты rc(8) будут вызывать команду + dumpon(8) для включения создания аварийных дампов. Вы + можете запустить команду dumpon(8) вручную. После + аварийной остановки аварийный дамп может быть получен с помощью программы + savecore(8); если значение переменной + dumpdev было установлено в + /etc/rc.conf, скрипты rc(8) запустят + savecore(8) автоматически и поместят аварийный дамп в + каталог /var/crash. + ЗАМЕЧАНИЕ: аварийные дампы FreeBSD обычно имеют размер, равный - физическому объёму оперативной памяти вашей машины. Так что если - у вас 64МБ ОЗУ, вы получите дамп размером 64МБ. Поэтому вы должны - удостовериться, что в каталоге /var/crash достаточно места - для хранения дампа. Либо вы можете вручную запустить savecore(8) - и создать аварийный дамп в другом каталоге, где достаточно места. - Размер аварийного дампа можно уменьшить, указав в конфигурации - ядра options MAXMEM=(размер) подходящее значение для объёма - памяти, которое будет использоваться ядром. Например, если у вас - 128 МБ ОЗУ, вы можете ограничить использование памяти ядром 16 - мегабайтами, так что размер аварийного дампа будет равен 16МБ, а - не 128. - - - -Как только вы получили аварийный дамп, вы можете выполнить - трассировку вызовов с помощью gdb(1) таким образом: - - - + физическому объёму оперативной памяти вашей машины. Так что если у вас 64МБ + ОЗУ, вы получите дамп размером 64МБ. Поэтому вы должны удостовериться, что + в каталоге /var/crash достаточно места для хранения + дампа. Либо вы можете вручную запустить savecore(8) + и создать аварийный дамп в другом каталоге, где достаточно места. Размер + аварийного дампа можно уменьшить, указав в конфигурации ядра + options MAXMEM=(размер) подходящее значение для объёма + памяти, которое будет использоваться ядром. Например, если у вас + 128 МБ ОЗУ, вы можете ограничить использование памяти ядром 16 мегабайтами, + так что размер аварийного дампа будет равен 16МБ, а не 128. + +Как только вы получили аварийный дамп, вы можете выполнить трассировку + вызовов с помощью gdb(1) таким образом: + % gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 (gdb) where