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.
This commit is contained in:
Andrey Zakhvatov 1999-12-18 12:24:04 +00:00
parent 71a397515b
commit 3eb28c4858
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=6222

View file

@ -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>
<itemizedlist>
<listitem>
<para>Отредактируйте конфигурационный файл ядра, добавив строку
'options DDB', если вам зачем-то понадобился встроенный отладчик.
(Я использую его в основном для указания точек останова, если
подозреваю возникновение бесконечных циклов.)</para>
</listitem>
<listitem>
<para>Отредактируйте конфигурационный файл ядра, добавив строку
'options DDB', если вам зачем-то понадобился встроенный отладчик.
(Я использую его в основном для указания точек останова, если
подозреваю возникновение бесконечных циклов.)
</para>
</listitem>
<listitem>
<para>Выполните <command>config -g KERNELCONFIG</command> для создания
каталога построения ядра.</para>
</listitem>
<listitem>
<para>Выполните <command>config -g KERNELCONFIG</command> для создания каталога
построения ядра.
</para>
</listitem>
<listitem>
<para><command>cd /sys/compile/KERNELCONFIG; make</command></para>
</listitem>
<listitem>
<para><command>cd /sys/compile/KERNELCONFIG; make</command>
</para>
</listitem>
<listitem>
<para>Дождитесь окончания компиляции ядра.</para>
</listitem>
<listitem>
<para>Дождитесь окончания компиляции ядра.
</para>
</listitem>
<listitem>
<para><command>make install</command></para>
</listitem>
<listitem>
<para><emphasis remap=tt>cp kernel kernel.debug</emphasis>
</para>
</listitem>
<listitem>
<para><command>strip -d kernel</command>
</para>
</listitem>
<listitem>
<para><emphasis remap=tt>mv </emphasis>kernel /kernel.orig/
</para>
</listitem>
<listitem>
<para><command>cp kernel /</command>
</para>
</listitem>
<listitem>
<para>reboot
</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