|
Навигация
|
Главная » Windows Удаленная отладка ядра в FreeBSD с использованием последовательной связиИсточник: IBM developerWorks Россия ВведениеFreeBSD - это развитая операционная система, созданная на базе BSD - версии UNIX, разработанной в Калифорнийском Университете, Беркли. Она обеспечивает высокую производительность, больше совместимости с другими операционными системами, например операционной системой Windows, и меньше системного администрирования. FreeBSD включает поддержку на уровне ядра фильтрации брандмауэром IP с учетом контекста и другие сервисы, такие как посреднические шлюзы IP, списки контроля доступа, мандатный контроль доступа, виртуальный хостинг, основанный на jail, и криптографически защищенное хранение данных. При разработке кода ядра или запуске разрабатываемого ядра иногда выдается сообщение о фатальной ошибке. Чтобы получить полезную информацию, очень важно провести диагностику дампа оперативной памяти. Если Вы попытаетесь использовать ту же самую машину, на которой ведется разработка, для отслеживания неполадок в дампе оперативной памяти, это может повлиять на производительность системы. В один момент времени можно отслеживать неполадки только в одном дампе оперативной памяти. Чтобы эффективно отслеживать неполадки в дампе вашего ядра, лучше всего установить сессию удаленной отладки между машиной, на которой ведется разработка, и целевой машиной, и удаленно отлаживать ядро с использованием последовательной связи. Утилита kgdb - это отладчик, основанный на gdb , который предоставляет возможность отладки основных файлов ядра. FreeBSD 5.3 и выше снабжены утилитой kgdb . Если у Вас более старая версия FreeBSD, Вы, тем не менее, можете воспользоваться командой gdb -k , чтобы прочесть файл дампа памяти. kgdb помогает помещать в код ядра точки останова, так что Вы можете пошагово отслеживать значения переменных.В этой статье показывается, каким образом установить среду отладки с использованием последовательного порта связи, как компилировать измененный код ядра и как начать отладку ядра. Также даются некоторые рекомендации по устранению неисправностей. Установка среды отладки Чтобы установить среду удаленной отладки для отладки ядра FreeBSD, Вам требуются две машины: целевая машина и та машина, на которой ведется разработка. Целевая машина работает с образом нового ядра, которое требуется отлаживать. Машина, на которой ведется разработка, используется для отладки ядра, запущенного на целевой машине. Для улучшения производительности в качестве машины, на которой ведется разработка, можно использовать машину с лучшей конфигурацией. Кабель "Нуль-модем" Нуль-модем - это коммуникационный метод, позволяющий соединить два компьютера напрямую при помощи кабеля по интерфейсу RS-232. Изначальный стандарт RS-232 определял связь между компьютерами только через модемы. При соединении "нуль-модем" линии передачи и приема связаны перекрестно. В зависимости от задачи иногда одна или несколько линий квитирования связаны перекрестно. Используется несколько монтажных схем, поскольку соединение "нуль-модем" не покрывается стандартом. Если Вы подключаете кабель "нуль-модем" к последовательному порту, отладчик может работать на своей текущей максимальной скорости 19200, в отличие от скорости 9600 при соединении через модем. Эта конфигурация, как правило, считается более надежной, чем использование модема, поскольку:
Модифицирование файлов ядра Чтобы ядро FreeBSD распознавало среду его удаленной отладки, использующую последовательное соединение, Вам потребуется модифицировать определенные файлы его конфигурации. Прежде всего, сделайте резервную копию изначального конфигурационного файла /usr/src/sys/i386/conf/GENERIC следующим образом:
На той машине, на которой ведется Ваша разработка, откройте этот конфигурационный файл предпочитаемым Вами редактором (vi или emacs):
Добавьте в него следующие строки:
Чтобы активизировать соединение по последовательному порту для отладки ядра, Вам потребуется модифицировать тот же самый конфигурационный файл. Найдите в файле /usr/src/sys/i386/conf/MYKERNEL слово sio0 , которое обозначает Ваш последовательный порт COM1 на Вашем компьютере. Установите флаг порта 0x80 следующим образом:
Компилирование ядра FreeBSD Как только Вы закончите с изменениями в конфигурационных файлах ядра, Вам следует скомпилировать Ваше ядро, чтобы можно было отлаживать новый образ ядра. Сконфигурируйте ядро при помощи следующей команды:
Опция -g добавляет отладочную информацию в образ ядра. После успешного выполнения этой команды обратите внимание на то, как она создает папку MYKERNEL в /usr/src/sys/compile/.Перейдите в папку /usr/src/sys/compile/MYKERNEL/ следующим образом:
Вам следует проверить разнообразные зависимости между различными модулями или файлами при помощи следующей команды:
Теперь настала пора собирать ядро и устанавливать новый образ ядра следующим образом:
После успешной операции сборки Ваш образ ядра в папке boot переписывается только что собранным образом ядра; старый образ ядра сохраняется как kernel.old. Отладка ядра Перед тем, как начать, удостоверьтесь в том, что Вы соединили кабелем "нуль-модем" машину, на которой ведется разработка, и целевую машину. Как только компиляция завершится, скопируйте образ ядра /usr/src/sys/compile/MYKERNEL/kernel.debug с машины, на которой ведется разработка, на целевую машину. Поскольку Вам потребуется отлаживать новый образ kernel.debug, Вам следует перезапустить целевую машину с образом kernel.debug. Введите следующие команды при загрузке машины, чтобы она вошла в режим отладки:
Интерфейс отладчика запущен, и это позволяет Вам начать отладку с машины, на которой ведется разработка. Введите:
Вам потребуется сразу же форсировать следующий шаг, попросту набрав s (step). Чтобы начать отладку ядра, откройте редактор emacs на машине, на которой ведется разработка. Это позволит Вам открыть утилиту kgdb ; только в emacs Вы можете осуществлять отладку ядра построчно. После того, как Вы откроете редактор emacs, запустите gdb с тем образом kernel.debug, который Вы хотите отлаживать, с опцией -k для отладки ядра. В редакторе emacs появится приглашение на ввод команд kgdb . Чтобы начать сессию удаленной отладки, введите:
Рекомендации по устранению неполадок Для установки среды отладки очень важно, чтобы у Вас был при себе подходящий кабель "нуль-модем". В этой статье рассматривается 25-контактная схема нуль-модема. В момент инициации удаленной отладки Вы можете получить сообщение об ошибке Ignoring packet error... . Эта ошибка указывает на то, что скорости двоичной передачи машины, на которой ведется Ваша разработка, и целевой машины различаются. Скорость двоичной передачи машины - это количество символов, передаваемых в секунду. Скорость двоичной передачи может отличаться от скорости передачи в битах, так как у символа может быть более двух состояний. Вам потребуется настроить обе машины на одинаковую скорость двоичной передачи. Это можно сделать с помощью следующей команды:
Заключение У применения удаленной отладки ядра вместо традиционной есть различные преимущества. Производительность Вашей системы вообще не затрагивается, поскольку Вы ее отлаживаете удаленно, на машине, на которой ведется Ваша разработка (одной в один момент времени). Вы можете отлаживать столько образов ядра (находящихся на целевых машинах), сколько вы хотите; это становится очевидным для пользователей, как только начинается отладка. Если gdb зависает или прекращает работу из-за какой-нибудь проблемы, стартуйте новый экземпляр gdb и подключитесь к kgdb при помощи целевой дистанционной команды.Microsoft выпустила обновления, необходимые для установки Vista SP1. Symantec Solutions - безопасность и эффективное управление Windows. Microsoft отменяет 22 экзамена. Потоки в Visual Basic (исходники). Драйверы: Realtek HD Audio Codec Driver R1.89 для Windows 2000/XP/2003 и Windows Vista (download). Главная » Windows |
© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено. |