Средства разработки приложений


Полное содержание книги "Наука отладки" - часть 2


Детективная работа
  • Холистическая наладка
    • Холистическая медицина, холистическая экология
    • Копировать и вставить
    • Глобальные переменные
    • Побочные эффекты
    • Следите за неожиданными сообщениями и результатами
    • Следите за диагностической информацией
  • Методы наладки
    • Научный метод
    • Интуиция
    • Внезапное озарение
    • Диагностика
  • Хитрости профессии
    • Встроенный отладчик
    • Объекты протоколов
    • Трассировочные объекты
    • Скрытые средства отображения информации
    • Сохранение данных об ошибках для последующих запусков
  • Воспроизводимые случаи
    • Тесты
    • Зависимость от данных
    • Отделение симптомов от главной причины
    • Сбор наблюдений
    • Статистика/ Метрика
  • Заключение
  • Задача
  • Глава 7. Инструменты наладки и как их использовать
    • Тестовая и наладочная среда
    • Набор тестов
    • Тестовый инвентарь
    • Набор прошлых ошибок
    • Протоколирование
    • Трассировка
    • Наладочные технологии среднего уровня
    • Средства определения утечки памяти
    • Перекрестные ссылки и традиционные инструменты
    • Отладчик
    • Принцип неопределенности Гейзенберга
    • Встроенные средства диагностики
    • Недостатки оператора assert
    • Работа с пользователями
    • Отслеживание ошибки
    • Анализ охвата кода
    • Компиляторы
      • Использование предупреждений высшего уровня
      • Проверка всех сообщений
      • Просмотр сгенерированного кода
      • Особенности языка
    • Заключение
    • Задача
  • Глава 8. Процесс наладки
    • Определение проблемы
      • Ошибка ли это?
      • Почему это ошибка?
      • Что должна делать программа?
      • Что программа делает в действительности?
    • Сбор информации
      • Описание проблемы пользователем
      • Файлы протокола
      • Личные наблюдения
      • Симптомы
      • Тесты, которые не выполняются
      • Похожие проблемы
      • Недавние изменения
      • Информация об окружении при выполнении
    • Сформулируйте гипотезу
    • Проверьте гипотезу
    • Сбой на Web-сервере
    • Повторяйте, пока не создадите доказанную гипотезу
    • Предложите решение
    • Проверьте решение
    • Повторяйте, пока решение не будет доказано
    • Регрессивное тестирование
    • Заключение
    • Задача
  • Глава 9. Методики наладки
    • Интрузивная и неинтрузивная наладка
    • Кратковременные и долговременные методы наладки
    • Компромиссы рабочей среды
      • Методы
      • Задействование реальных пользователей
      • Записывайте наблюдения
      • Документируйте код и процесс
      • Сходство с другим кодом и проблемами
      • Упростите воспроизводимость
      • Сведите проблему к ее простейшим элементам
      • Удаление кода
      • Редукционизм
      • Использование отладчика
      • Внезапные озарения
      • Разделяй и властвуй
      • Внесение ошибок
      • Проверка компилятором
      • Холистический подход
      • Используйте другой компилятор в другой операционной системе
      • Изменяйте по одной переменной за раз
      • Нумерология и граничные условия
      • Проверьте последние изменения
      • Вычистите "мертвый код" в системе
      • Сомнительные допущения
      • Посмотрите на непроверенный код
      • Инварианты
      • Использование памяти
      • Мьютекс
      • Визуализируйте работу системы
      • Сравните код с системой, о которой известно, что она работает
      • Поймите алгоритмы
      • Проверьте связь
      • Файлы ядра
      • Добавьте трассировку
      • Проверка зависимости данных
      • Способность к воспроизведению (действия по записи)
      • Зеркала рабочей системы
    • Заключение
    • Задача
  • Глава 10.


    Начало  Назад  Вперед



    Книжный магазин