Перейти к содержимому

Что такое отладочная сборка

  • автор:

Что такое отладочная сборка

Отладкой можно называть процесс поиска логических ошибок в программе. Как известно ошибки бывают двух типов.

Синтаксические Логические

Синтаксические ошибки выявляются при сборке проекта и отображаются в окне Build.

Намного труднее выявить логические ошибки, которые обычно проявляются в ходе выполнения программы. Программа работает, но ведет себя как-то странно, допустим выдает неправильный результат. Тут-то и возникает ряд специфических задач, например остановить выполнение программы и посмотреть содержание переменных, пройтись по программе в пошаговом режиме и так далее. При разговоре об отладке нужно четко понимать, что есть две версии собранного проекта. Отладочная версия (debug) и конечная версия (release). Отладочная версия характеризуется большим размером, который может в десятки раз превышать размер конечной версии. Это связано с тем, что в собранный проект помещается вся необходимая информация для отладчика (таблицы символов и так далее). Кроме того, при сборке отладочного проекта отключена любая оптимизация, именно с этим связаны многие проблемы получения конечной версии, когда отладочная работает, а конечная нет. Тут от части виновата оптимизация. Именно использование отладочной версии сборки позволяет Вам получить максимальные возможности. В любой момент есть возможность переключиться на отладочную версию или конечную. За этот процесс отвечает пункт меню Set Active Configuration.

По выбору которого появляется диалоговое окно выбора сборки.

Здесь можно выбрать необходимую конфигурацию и нажать на ОK. По умолчанию проект создается в отладочной версии. После сборки проекта в папке проекта появляется соответствующая папка с результатами сборки, в которой и будет лежать готовый EXE файл. Имена соответствуют именам конфигурации.

Итак, мы с Вами будем рассматривать отладку, как процесс поиска логических ошибок. Для полного использования данной возможности необходимо использовать отладочную версию сборки проекта.

Отладочная сборка: определение, значение, предложения

На данной странице приводится толкование (значение) фразы / выражения «отладочная сборка», а также синонимы, антонимы и предложения, при наличии их в нашей базе данных. Мы стремимся сделать толковый словарь English-Grammar.Biz, в том числе и толкование фразы / выражения «отладочная сборка», максимально корректным и информативным. Если у вас есть предложения или замечания по поводу корректности определения «отладочная сборка», просим написать нам в разделе «Обратная связь».

  • Теория
    • Грамматика
    • Лексика
    • Аудио уроки
    • Диалоги
    • Разговорники
    • Статьи
  • Онлайн
    • Тесты
    • Переводчик
    • Орфография
    • Радио
    • Игры
    • Телевидение
  • Специалистам
    • Английский для медиков
    • Английский для моряков
    • Английский для математиков
    • Английский для официантов
    • Английский для полиции
    • Английский для IT-специалистов
  • О проекте
    • Реклама на сайте
    • Обратная связь
    • — Partners
    • OpenTran
  • Словари
    • Испанский
    • Голландский
    • Итальянский
    • Португальский
    • Немецкий
    • Французский
    • Хинди
  • Содержание
    • Перевод
    • Синонимы
    • Антонимы
    • Произношение
    • Определение
    • Примеры
    • Транскрипция

Copyright © 2009-2023. All Rights Reserved.

Все права на сервисы и материалы, находящиеся на сайте EnglishLib.org, защищены. Использование материалов возможно только с письменного разрешения владельца и при указании прямой активной ссылки на EnglishLib.org.

Отладочная сборка

Существует версия Windows, называемая отладочной сборкой (checked build), которая доступна только подписчикам MSDN Operating Systems. Это перекомпилированный исходный код Windows с выставленным флажком времени компиляции DBG (включает условный код отладки и трассировки).

Кроме того, чтобы было проще понять машинный код, не производится последующая обработка двоичных кодов Windows, оптимизирующая расположение кода для быстрого выполнения. (См. раздел «Debugging Performance-Optimized Code» вфайлесправки Debugging Tools for Windows.)

В первую очередь отладочная сборка предназначена для помощи разработчикам драйверов устройств, потому что в ней выполняются более строгие проверки на наличие ошибок в функциях режима ядра, вызываемых драйверами устройств или другим системным кодом. Например, если драйвер (или какой-нибудь другой фрагмент кода, выполняемого в режиме ядра) осуществляет неверный вызов системной функции, которая ведет проверку аргументов (например, запрос спин-блокировки на неправильном уровне прерывания), система при обнаружении проблемы останавливает выполнение, не допуская разрушения какой-нибудь структуры данных и возможной в последующем аварии системы.

Эксперимент: Определение факта запуска отладочной сборки.

Чтобы вывести на экран информацию о том, какая именно сборка запущена, отладочная или поступающая в продажу (которая называется свободной), встроенного средства не существует. Но эта информация доступна через свойство «Debug» класса Win32_OperatingSystem инструментария управления WindowsManagementInstrumentation (WMI). Значение этого свойства выводится с помощью следующего примера сценария Microsoft Visual Basic:

strComputer = «.»

Set objWMIService = GetObject(«winmgmts:» _

& «!\\» & strComputer & «\root\cimv2»)

Set colOperatingSystems = objWMIService.ExecQuery _

(«SELECT * FROM Win32_OperatingSystem»)

For Each objOperatingSystem in colOperatingSystems

Wscript.Echo «Заголовок: » & objOperatingSystem.Caption

Wscript.Echo «Отладка: » & objOperatingSystem.Debug

Wscript.Echo «Версия: » & objOperatingSystem.Version

Next

Чтобы увидеть его в работе, наберите предыдущий код и сохраните его в файле.

При запуске сценария на экран будет выведена следующая информация:

Сервер сценариев Windows (Microsoft R) версия 5.8

Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

Заголовок: Microsoft Windows 7 Ultimate

Отладка: Ложь

Версия: 6.1.7600

Эта система запущена не из отладочной сборки, поскольку показанный здесь флажок отладки не установлен, то есть имеет значение False (Ложь).

Основная часть дополнительного кода в исполняемых файлах отладочной версии является результатом использования макроса ASSERT и (или) макроса NT_ASSERT, которые определены в заголовочном файле WDK Wdm.h и описаны в WDK-документации. Макрос проверяет условие (например, приемлемость структуры данных или параметра), и если выражение вычисляется в FALSE, макрос вызывает функцию RtlAssert, работающую в режиме ядра, которая вызывает функцию DbgPrintEx для отправки текста отладочного сообщения в предназначенный для этого сообщения буфер.

Если подключен отладчик ядра, это сообщение выводится автоматически вместе с вопросом пользователю о том, что делать в связи с сообщением об отказе (установить контрольную точку, проигнорировать, завершить процесс или завершить поток). Если система не была запущена с отладчиком ядра (с использованием параметра отладки в базе данных конфигурации загрузки — Boot Configuration Database, BCD) и отладчик ядра не подключен, неудачное выполнение теста утверждения — ASSERT приведет к ошибке проверки системы.

Перечень проверок ASSERT, проводимых некоторыми подпрограммами поддержки ядра, приводится в разделе «Checked Build ASSERTs» WDK-документации.

Отладочная сборка может также пригодиться системным администраторам своей дополнительной подробной информационной трассировкой, которая может быть включена для некоторых компонентов. (Подробныеинструкцииданывстатьебазызнаний Microsoft «HOWTO: Enable Verbose Debug Tracing in Various Drivers and Subsystems».)

Этот информационный вывод отправляется во внутренний буфер отладочных сообщений с использованием ранее упомянутой функции DbgPrintEx. Для просмотра отладочных сообщений можно либо подключить к целевой системе отладчик ядра (что требует загрузки целевой системы в отладочном режиме), воспользовавшись после этого командой !dbgprint при осуществлении отладки локального ядра, либо воспользоваться средством Dbgview.exeиз набора Sysinternals(www.microsoft.com/technet/sysinternals).

Чтобы воспользоваться отладочной версией операционной системы необязательно устанавливать всю отладочную сборку. Достаточно в обычную поставляемую установку скопировать отладочную версию образа ядра (Ntoskrnl.exe) и соответствующую HAL-библиотеку (Hal.dll).

Преимущество такого подхода заключается в том, что драйверы устройств и другие фрагменты кода ядра получают строгий контроль, присущий отладочной сборке без необходимости запуска работающих медленнее отладочных версий всех компонентов системы. Подробныеинструкцииприведенывразделе «Installing Just the Checked Operating System and HAL» WDK-документации.

И наконец, отладочная сборка может также пригодиться для тестирования кода, выполняемого в пользовательском режиме, что обусловлено только лишь разницей в синхронизации системы. (Причина в том, что в ядре проводятся дополнительные проверки и компоненты скомпилированы без оптимизации.)

Зачастую ошибки многопоточной синхронизации связаны с особыми условиями ее организации. При запуске тестов на системе, где работает отладочная сборка (или, как минимум, отладочная версия ядра и соответствующая HAL-библиотека), сам факт другой синхронизации всей системы может выявить скрытые ошибки синхронизации, которые не проявляют себя на системах их обычных комплектов поставки.

Related posts:

  1. Отладка ядра Windows
  2. Инструментальное средство LiveKd
  3. Системные механизмы
  4. Инструментальные средства для просмотра внутреннего устройства Windows.

Отладочная сборка

Как собрать отладочную сборку?

Для контроля качества перевода требуется отладочная сборка ООо. Это обычная русская ванильная сборка, но в интерфейсе в каждой лексеме указаны идентификаторы, позволяющие найти данную лексему в po-файлах (которые используются при переводе интерфейса).

Для создания отладочной сборки необходимо скачать архивы с исходными кодами ООо, распаковать их и попробовать собрать обычную версию ООо из исходников. Если сборка пройдет удачно — можно приступать к созданию отладочной сборки.

Для сборки на Linux понадобится gcc (например gcc3.4) + минимум 10 Гб свободного дискового пространства.

Приступим к сборке:

  1. Запускаем ./configure Скрипт сообщает о недостающих пакетах. Доустанавливаем их.
  2. Запускаем ./configure Теперь скрипт сообщает о том, что можно запускать bootstrap
  3. Запускаем ./bootstrap Скрипт дополнительно закачал с hg.services.openoffice.org много внешних библиотек (на 215 Мб)
  4. Запускаем make

Перед началом сборки можно отключить ненужные модули (или те, которые не собираются из-за ошибок)

./configure --disable-mozilla --disable-gtk --without-junit --with-system-cppunit --without-myspell-dicts

Надо иметь в виду, что при отключении модулей теряется некоторая функциональность.

Для получения русской сборки необходимо использовать ключ —with-lang=»ru»

./configure --disable-mozilla --disable-gtk --without-junit --with-system-cppunit --without-myspell-dicts --with-lang="ru"

Для сборки LO можно использовать следующую команду

./configure --disable-gtk --without-junit --disable-postgresql-sdbc -disable-gstreamer-0-10 --disable-firebird-sdbc --enable-epm --with-package-format='rpm' --with-lang="ru"

После 7-8 часов сборки получаем дистрибутив. Копируем полученный дистрибутив в другой каталог.

После завершения «ванильной» сборки можно приступать и к специальной сборке.

В специальной сборке необходимо заменить файл localize.sdf специально подготовленным с отладочными идентификаторами.

  1. Скачиваем sdf файл http://download.services.openoffice.org/files/extended/ooomisc/sdf/
  2. Скачиваем архив с файлами локализации (.ро) и распаковываем его в каталог
  3. Скачиваем oo2po http://translate.sourceforge.net/wiki/toolkit/oo2po
  4. Формируем каталог с отладочными идентификаторами.

podebug -f «%4h.»

5. Перепаковываем в sdf на основе шаблона en-US.sdf

po2oo -l ru -i -t en-US.sdf -o GSI.sdf

6. Полученный sdf помещаем в каталог сборки OOo и выполняем сборку.

Перед новой сборкой необходимо выполнить очистку командой

make clean
./configure --disable-mozilla --disable-gtk --without-junit --with-system-cppunit --without-myspell-dicts --with-lang="ru"

Для сборки OOo используется dmake, который поставляется в составе исходных кодов OOo. Если при выполнении команды ./configure система выдаст ошибку об отсутствии dmake — надо выполнить команду make в каталоге dmake.

make

В процесс локализации LO, начиная, как минимум, с LO 4, внесены изменения. В LO файлы sdf не используются, вместо них идёт архив с po файлами. Поэтому схема будет такой:

  1. Скачиваем архив с файлами локализации (.ро) и распаковываем его в каталог
  2. Скачиваем oo2po http://translate.sourceforge.net/wiki/toolkit/oo2po
  3. Формируем каталог с отладочными идентификаторами.

podebug -f «%4h.»

4. Полученный каталог помещаем в каталог сборки LO и выполняем сборку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *