diff options
author | Andrey Zakhvatov <andy@FreeBSD.org> | 1999-12-18 12:24:04 +0000 |
---|---|---|
committer | Andrey Zakhvatov <andy@FreeBSD.org> | 1999-12-18 12:24:04 +0000 |
commit | 3eb28c4858d55fc0b7f853ce330a069936507d3c (patch) | |
tree | 46191bc1cdabad7dd971c70b98a8e6e742596947 /ru_RU.KOI8-R | |
parent | 71a397515b90f32d6b6f28cf8de07b223854f68c (diff) | |
download | doc-3eb28c4858d55fc0b7f853ce330a069936507d3c.tar.gz doc-3eb28c4858d55fc0b7f853ce330a069936507d3c.zip |
Synchronize with English 1.27:
Update the information about building a debugging kernel. Remove the
individual steps, and replace with "make install". Update the following
note to explain that kernel is installed, while kernel.debug remains as
a source of debugging symbols for gdb(1).
Minor reformatting.
Notes
Notes:
svn path=/head/; revision=6222
Diffstat (limited to 'ru_RU.KOI8-R')
-rw-r--r-- | ru_RU.KOI8-R/books/faq/book.sgml | 168 |
1 files changed, 63 insertions, 105 deletions
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 @@ </author> </authorgroup> -<pubdate>$FreeBSD: doc/ru_RU.KOI8-R/books/faq/book.sgml,v 1.22 1999/11/27 10:48:51 andy Exp $</pubdate> +<pubdate>$FreeBSD: doc/ru_RU.KOI8-R/books/faq/book.sgml,v 1.23 1999/12/16 05:00:43 andy Exp $</pubdate> <abstract><para>Этот документ является так называемым FAQ (Frequently Asked Questions), то есть списком Часто Задаваемых Вопросов по FreeBSD версий 2.X @@ -8946,12 +8946,10 @@ Cc: current@FreeBSD.org </itemizedlist> </para> - - - + <para>Зачастую люди приводят подобные аварийные сообщения, на редко кто - утруждается привести соотвествие указателя инструкций с функцией в - таблице символов ядра.</para> + утруждается привести соотвествие указателя инструкций с функцией в + таблице символов ядра.</para> <para>Лучшим способом выяснить причину, вызвавшую аварийный останов, является создание аварийного дампа системы, а затем использование @@ -8965,112 +8963,72 @@ Cc: current@FreeBSD.org <para>Во всяком случае, обычно я использую такой способ:</para> <para> -<itemizedlist> - -<listitem> -<para>Отредактируйте конфигурационный файл ядра, добавив строку - 'options DDB', если вам зачем-то понадобился встроенный отладчик. - (Я использую его в основном для указания точек останова, если - подозреваю возникновение бесконечных циклов.) - </para> -</listitem> - -<listitem> -<para>Выполните <command>config -g KERNELCONFIG</command> для создания каталога - построения ядра. - </para> -</listitem> - -<listitem> -<para><command>cd /sys/compile/KERNELCONFIG; make</command> - </para> -</listitem> - -<listitem> -<para>Дождитесь окончания компиляции ядра. - </para> -</listitem> - -<listitem> -<para><emphasis remap=tt>cp kernel kernel.debug</emphasis> - </para> -</listitem> + <itemizedlist> + <listitem> + <para>Отредактируйте конфигурационный файл ядра, добавив строку + 'options DDB', если вам зачем-то понадобился встроенный отладчик. + (Я использую его в основном для указания точек останова, если + подозреваю возникновение бесконечных циклов.)</para> + </listitem> -<listitem> -<para><command>strip -d kernel</command> - </para> -</listitem> + <listitem> + <para>Выполните <command>config -g KERNELCONFIG</command> для создания + каталога построения ядра.</para> + </listitem> -<listitem> -<para><emphasis remap=tt>mv </emphasis>kernel /kernel.orig/ - </para> -</listitem> + <listitem> + <para><command>cd /sys/compile/KERNELCONFIG; make</command></para> + </listitem> -<listitem> -<para><command>cp kernel /</command> - </para> -</listitem> + <listitem> + <para>Дождитесь окончания компиляции ядра.</para> + </listitem> -<listitem> -<para>reboot - </para> -</listitem> + <listitem> + <para><command>make install</command></para> + </listitem> -</itemizedlist> + <listitem> + <para>reboot</para> + </listitem> + </itemizedlist> </para> - - - -<para><emphasis>[Замечание: Так как теперь ядра FreeBSD 3.x по умолчанию - имеют формат Elf, вы должны использовать команду <command>strip -g</command> - вместо <command>strip -d</command>]. Если по какой-то причине ваше ядро всё ещё - имеет формат a.out, используйте команду <command>strip -aout -d</command>.]</emphasis></para> - - - -<para>Заметьте, что ВАМ <emphasis>НЕ</emphasis> НУЖНО ЗАГРУЖАТЬ ЯДРО С ОТЛАДОЧНОЙ - ИНФОРМАЦИЕЙ. Ядро, откомпилированное с ключом <option>-g</option>, может - занимать порядка 10МБ. Вам не нужно загружать этот огромный образ: - он вам пригодится позже для <command>gdb(1)</command> (а <command>gdb(1)</command> требует - таблицу имён). Вместо этого просто сохраните полный образ и создайте - ещё один, удалив отладочную информацию командой <command>strip -d</command>. Именно - этот образ вам и нужен для загрузки.</para> - - - -<para>Чтобы включить сброс аварийного дампа, вам нужно отредактировать - файла <filename>/etc/rc.conf</filename>, чтобы <emphasis remap=tt>dumpdev</emphasis> указывало на раздел - подкачки. В этом случае скрипты <command>rc(8)</command> будут вызывать команду - <command>dumpon(8)</command> для включения создания аварийных дампов. Вы можете - запустить команду <command>dumpon(8)</command> вручную. После аварийной остановки - аварийный дамп может быть получен с помощью программы - <command>savecore(8)</command>; если значение переменной <emphasis remap=tt>dumpdev</emphasis> было - установлено в <filename>/etc/rc.conf</filename>, скрипты <command>rc(8)</command> запустят - <command>savecore(8)</command> автоматически и поместят аварийный дамп в каталог - <filename>/var/crash</filename>.</para> - - - + +<para>В процессе выполнения команды &man.make.1; будут построены два ядра, + <filename>kernel</filename> и <filename>kernel.debug</filename>. + <filename>kernel</filename> будет установлен как + <filename>/kernel</filename>, тогда как <filename>kernel.debug</filename> + может быть использован в качестве источника отладочной информации для + gdb(1).</para> + +<para>Чтобы включить сброс аварийного дампа, вам нужно отредактировать файл + <filename>/etc/rc.conf</filename> так, чтобы устройство + <emphasis remap=tt>dumpdev</emphasis> указывало на раздел подкачки. В этом + случае скрипты <command>rc(8)</command> будут вызывать команду + <command>dumpon(8)</command> для включения создания аварийных дампов. Вы + можете запустить команду <command>dumpon(8)</command> вручную. После + аварийной остановки аварийный дамп может быть получен с помощью программы + <command>savecore(8)</command>; если значение переменной + <emphasis remap=tt>dumpdev</emphasis> было установлено в + <filename>/etc/rc.conf</filename>, скрипты <command>rc(8)</command> запустят + <command>savecore(8)</command> автоматически и поместят аварийный дамп в + каталог <filename>/var/crash</filename>.</para> + <para>ЗАМЕЧАНИЕ: аварийные дампы FreeBSD обычно имеют размер, равный - физическому объёму оперативной памяти вашей машины. Так что если - у вас 64МБ ОЗУ, вы получите дамп размером 64МБ. Поэтому вы должны - удостовериться, что в каталоге <filename>/var/crash</filename> достаточно места - для хранения дампа. Либо вы можете вручную запустить <command>savecore(8)</command> - и создать аварийный дамп в другом каталоге, где достаточно места. - Размер аварийного дампа можно уменьшить, указав в конфигурации - ядра <literal>options MAXMEM=(размер)</literal> подходящее значение для объёма - памяти, которое будет использоваться ядром. Например, если у вас - 128 МБ ОЗУ, вы можете ограничить использование памяти ядром 16 - мегабайтами, так что размер аварийного дампа будет равен 16МБ, а - не 128.</para> - - - -<para>Как только вы получили аварийный дамп, вы можете выполнить - трассировку вызовов с помощью <command>gdb(1)</command> таким образом:</para> - - - + физическому объёму оперативной памяти вашей машины. Так что если у вас 64МБ + ОЗУ, вы получите дамп размером 64МБ. Поэтому вы должны удостовериться, что + в каталоге <filename>/var/crash</filename> достаточно места для хранения + дампа. Либо вы можете вручную запустить <command>savecore(8)</command> + и создать аварийный дамп в другом каталоге, где достаточно места. Размер + аварийного дампа можно уменьшить, указав в конфигурации ядра + <literal>options MAXMEM=(размер)</literal> подходящее значение для объёма + памяти, которое будет использоваться ядром. Например, если у вас + 128 МБ ОЗУ, вы можете ограничить использование памяти ядром 16 мегабайтами, + так что размер аварийного дампа будет равен 16МБ, а не 128.</para> + +<para>Как только вы получили аварийный дамп, вы можете выполнить трассировку + вызовов с помощью <command>gdb(1)</command> таким образом:</para> + <para> <literallayout>% gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 (gdb) where |