Нахождение исполняемых образов с изменениями приводящими к ошибкам

Нахождение исполняемых образов с изменениями приводящими к ошибкам

Обычно полезно знать, в какой версии исходных кодов ядра появился дефект. Если известно, что дефект появился в версии 2.4.18, но его не было в версии 2.4.17, то сразу появляется ясная картина изменений, которые привели к появлению ошибки. Исправление ошибки сводится к обратным изменениям, или другим исправлениям измененного кода.

Однако, чаще оказывается неизвестным в какой версии появился дефект. Известно, что проблема проявляется в текущей версии ядра, и кажется, что она всегда была в текущей версии. Хотя это и требует некоторой исследовательской работы, но приложив небольшие усилия можно найти изменения, которые привели к ошибкам. Если известны эти изменения, то до исправления ошибки уже недалеко.

Для того, чтобы начать, необходима четко повторяемая проблема. Желательно, чтобы проблема проявлялась сразу же после загрузки системы. Далее необходимо гарантированно работающее ядро. Вероятно, это ядро уже известно. Например, может оказаться, что пару месяцев назад ядро работало нормально, поэтому стоит взять ядро того времени. Если это не помогает, то можно воспользоваться еще более старой версией. Такой поиск ядра без дефекта должен быть не сложным, если, конечно, дефект не существовал всегда.

Далее, необходимо ядро, в котором гарантированно есть дефект. Для облегчения поиска следует воспользоваться наиболее ранней версией ядра, в которой есть дефект. После этого начинается поиск исполняемого образа, в котором появилась ошибка. Рассмотрим пример. Допустим, что последнее ядро, в котором не было ошибки — 2.4.11, а последнее с ошибкой — 2.4.20. Начинаем с версии ядра, которая находится посредине — 2.4.15. Проверяем версию 2.4.15 на наличие ошибки. Если версия 2.4.15 работает, значит ошибка появилась в более поздней версии. Следует попробовать версию между 2.4.15 и 2.4.20, скажем версию 2.4.17. С другой стороны, если версия 2.4.15 не работает, то тогда ясно, что ошибка появилась в более ранней версии, и следует попробовать версию, скажем 2.4.13. И так далее.

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

Такой подход избавляет от необходимости проверять ядра всех версий!

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Управление технологическими изменениями

Из книги Модель зрелости процессов разработки программного обеспечения автора Паулк Марк

Управление технологическими изменениями Цель 1. Планирование внедрения технологических изменений.Цель 2. Оценка новых технологий с целью определения их влияния на качество продукта и продуктивность производственного процесса.Цель 3. Внедрение подходящих новых


Управление изменениями процесса

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Управление изменениями процесса Цель 1. Планирование непрерывного усовершенствования процесса.Цель 2. Участие в работах по усовершенствованию производственного процесса организации должно носить общекорпоративный характер.Цель 3. Непрерывное усовершенствование СППО


Ода ошибкам и исключениям

Из книги Использование ListView в режиме виртуального списка автора Чадов Тимофей

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


Нахождение специфических элементов

Из книги Внедрение SAP R/3: Руководство для менеджеров и инженеров автора Кале Вивек

Нахождение специфических элементов Когда списку необходимо найти специфический элемент, он посылает уведомление LVN_ODFINDITEM. Это может случиться, если требуется реализовать нажатие быстрой клавиши (поиск по имени), или элемент получил сообщение LVM_FINDITEM. Информация для


SAP и управление изменениями

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

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


Управление изменениями в рамках проекта SAP

Из книги Стандарты программирования на С++. 101 правило и рекомендация автора Александреску Андрей

Управление изменениями в рамках проекта SAP Внедрение изменений и управление реакцией на изменение — это две важные задачи, с которыми сталкиваются компании в наше время. Способность изменять бизнес-процессы вносит непосредственный вклад в практический результат


ASAP, BPR и управление изменениями

Из книги OrCAD PSpice. Анализ электрических цепей автора Кеоун Дж.

ASAP, BPR и управление изменениями Когда компания выбирает методологию ASAP для внедрения SAP, успех проекта зависит от того, насколько быстро компания сможет внести изменения в свои бизнес-процессы в соответствии с лучшими в своем классе процессами, предусмотренными в SAP. При


Управление организационными изменениями

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Управление организационными изменениями Помимо задач, связанных с непосредственным решением различных задач в рамках проекта внедрения SAP, в методологии ASAP особое значение придается вопросу управления изменениями, связанными с проектом SAP. Как уже упоминалось в главе


Поддержка организации управления изменениями

Из книги Операционная система UNIX автора Робачевский Андрей М.

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


Продолжение процесса управления организационными изменениями

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Продолжение процесса управления организационными изменениями Как видно из обзора предыдущих этапов проекта, эта задача включает в себя совокупность процессов, которые помогают команде управления организационными изменениями диагностировать и управлять вопросами


6.2.2. Нахождение границ диапазона

Из книги автора

6.2.2. Нахождение границ диапазона Методы first и last возвращают соответственно левую и правую границу диапазона. У них есть синонимы begin и end (это еще и ключевые слова, но интерпретируются как вызов метода, если явно указан вызывающий объект).r1 = 3..6r2 = 3...6r1a, r1b = r1. first, r1.last # 3,6r1c, r1d =


14. Предпочитайте ошибки компиляции и компоновки ошибкам времени выполнения

Из книги автора

14. Предпочитайте ошибки компиляции и компоновки ошибкам времени выполнения РезюмеНе стоит откладывать до выполнения программы выявление ошибок, которые можно обнаружить при ее сборке. Предпочтительно писать код, который использует компилятор для проверки инвариантов


Нахождение более точных значений

Из книги автора

Нахождение более точных значений Чтобы получить более точные значения, используем дисплей курсора следующим образом. Закройте окно Probe и возвратитесь к позиции PSpice из главного меню. Выберите Edit Simulation Settings и выполните моделирование от 50 до 70 Гц для трех частот. Когда


12.2.5. Нахождение набора ожидающих сигналов

Из книги автора

12.2.5. Нахождение набора ожидающих сигналов Очень легко найти сигналы, находящиеся в состоянии ожидания (сигналы, которые должны быть доставлены, но в данный момент заблокированы).#include <signal.h>int sigpending(sigset_t *set);Эта функция записывает по адресу, указанному set, набор сигналов,


Форматы исполняемых файлов

Из книги автора

Форматы исполняемых файлов Виртуальная память процесса состоит из нескольких сегментов или областей памяти. Размер, содержимое и расположение сегментов в памяти определяется как самой программой, например, использованием библиотек, размером кода и данных, так и