Ошибка двигателя: Диагностические коды неисправности. Коды ошибок компьютеров Почему нужно диагностировать причину синего экрана

Синий экран смерти (BSOD) является одним из самых неприятных проблем, с которой пользователь Windows может столкнуться. Зная, как определить причину сбоя является одним из наиболее важных форм диагностики BSOD. Ошибка с кодом синего экрана могут возникнуть по разным причинам и не проанализировав, с чем связана ошибка, ее сложно устранить. Это основные причины для синего экрана смерти BSOD:

  • Конфликты драйверов - конфликты с драйверами возникают, когда два или несколько драйверов не могут работать друг с другом должным образом. Это также может произойти, если несколько драйверов установлены для одного и того же устройства без удаления предыдущей версии.
  • Конфликты оборудования - Некорректный разгон ПК может сразу создать BSOD. Также "синий экран смерти" может возникать, если ваши планки RAM неправильно установлены или если часть оборудования начинает подходить к износу.
  • Ошибки операционной системы (ОС) - Пользовательская ошибка или вредоносное ПО, могут удалять жизненно важные файлы вашей ОС. Существенные недостающие файлы могут привести к пагубной ошибке, в результате чего ваш ПК войдет в цикл BSOD, в котором вы получаете синий экран каждый раз, когда ваш компьютер включается.

Подготовка к анализу дампа файла BSOD

Всякий раз, когда происходит BSOD ошибка, Windows выгружает некоторую информацию об этом в файл на вашем ПК, но попытка понять этот файл дампа очень сложна. Одним из облегченных способов понимания является использование утилиты BlueScreenView от NirSoft , свободного инструмента, который находит эти файлы дампа и отображает их в более удобной для пользователя форме. Прежде всего вам стоит проверить настройки для отчета дампа памяти в самой системе Windows:

  • Нажмите Win+R и введите sysdm.cpl
  • Перейдите на вкладку Дополнительно и выберите снизу

  • Убедитесь, что у вас включены настройки для записи ошибок в журнал.

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


Узнать коды ошибок Синего Экрана Смерти

Запустив программу, она вам покажет ошибки в файлах и дампы памяти. Как видим на рисунке ниже у меня выскакивает синий экран с ошибкой ndis.sys и походу неполадки в файле ntoskrni.exe. В верхнем столбце я могу посмотреть полный отчет о дампе файла, и нажав по нему правой кнопкой мыши найти в google информацию по исправлению. Ошибка скорее всего связана с установленной виртуальной машиной, точнее быть с виртуальным сетевым адаптером и антивирусом, который создает ошибку синего экрана после спящего режима и первичной загрузки системы.


Как исправить коды ошибок Синего Экрана Смерти

Приведу пару способов, что делать и как устранить ошибки популярными способами:

  • Когда к примеру в Windows 10 происходит синий экран смерти, то там будет QR код по которому вас перебросит на сайт .
  • На сайте Microsoft уже есть база с ошибками BSOD и подсказывающие инструменты.
  • Используйте виртуального агента Майкрасофт, введите в первую строку сообщения BSOD и следуйте инструкциям.
  • Microsoft также предлагает запустить

Обновление Anniversary операционной системы Windows 10 добавило в нее множество утилит и дополнительных программ, которые могут потребоваться пользователю. В том числе компания Microsoft ввела новое диагностическое приложение, которое позволяет определить причину возникновения «Синего экрана» - хорошо известной ошибки, которая приводит к перезагрузке компьютера. Если синий экран возникает часто, пользователю важно узнать, почему это происходит, после чего принять шаги для устранения проблемы.

Как узнать причину синего экрана (BSOD) в Windows 10

До обновления Anniversary на Windows 10 узнать причину возникновения синего экрана можно было только в системных файлах компьютера. Компания Microsoft стремится сократить количество взаимодействий между пользователем и системными данными PC, выпуская различные утилиты и диагностические приложения для определения синего экрана.

Чтобы узнать причину синего экрана в Windows 10 после Anniversary обновления нужно сделать следующее:



Важно помнить, что не всегда синий экран возникает при работе Windows из-за программной ошибки. Он может появляться из-за проблем с «железом» (перегрев или повреждения компонентов компьютера) или вирусами. Когда ошибка будет определена диагностической утилитой Windows, можно узнать подробности о ней на сайте Microsoft по коду ошибки BugCheck.

Почему нужно диагностировать причину синего экрана

Многие пользователи Windows считают нормальной ситуацию, когда несколько раз в месяц компьютер перезагружается из-за BSOD – синего экрана. Данная ошибка является для многих привычной, и они не думают о многих проблемах, к которым она может привести:

Если синий экран появляется регулярно, нужно обязательно определить причину возникновения ошибки и устранить ее.

Наверное, каждый владелец автомобиля с инжекторным двигателем сталкивался с различными ошибками в работе этого агрегата. О такой неприятности сообщает соответствующий знак на панели приборов - "ошибка двигателя". Многие сразу же поедут в СТО на диагностику, другие же будут ездить с этой проблемой. Но третья группа людей обязательно заинтересуется причинами и расшифровками кодов.

ЭБУ в автомобилях

Работа упомянутой детали незаметна, но этот блок сразу запускается после того, как водитель включил двигатель.

В некоторых моделях автомобилей электроника контролирует параметры даже после остановки авто.

Каждое ЭБУ на любом автомобиле снабжено специальным контроллером, который при обнаружении различных неисправностей откликается на них зажиганием индикатора - "ошибка двигателя". Каждая ошибка имеет свой код и остается в памяти компьютера. Некоторые проблемы не только полностью сохраняются, но фиксируется также и время их обнаружения системой. Эта опция именуется "стоп-кадр".

- причины

Лампочка, которая сообщает об ошибках, на приборной панели всего одна. Однако причин у них может быть много. Это можно узнать и без специального оборудования или же поездки в СТО.

Лямбда-зонд

Датчик кислорода - это часть системы отработки выхлопных продуктов. Он проверяет, сколько кислорода не сгорело в цилиндрах двигателя. Лямбда-зонд также контролирует расход топлива.

Различные неисправности названного датчика не позволяют ЭБУ получить информацию от него. Иногда этот элемент выдает неверную информацию. Такие поломки могут увеличить либо уменьшить расход топлива и снизить мощность двигателя. На большинстве современных автомобилей таких датчиков от двух до четырех.

Среди причин выхода из строя описываемого элемента загрязнение его отработанным маслом или же масляной сажей. Это снижает точность съема информации для регулирования топливной смеси и определения оптимального расхода топлива.

Крышка горловины топливного бака

Большинство водителей при возникновении ошибки всегда задумываются о существовании очень серьезных проблем. Но мало кто думает проверить, герметична ли топливная система. А ведь эта самая герметичность может быть легко нарушена недостаточно туго закрытой крышкой бензобака. И это довольно распространенная ситуация!

А причем здесь ошибка двигателя? Дело в том, что при негерметично закрытой крышке в систему проходит воздух, что увеличивает расход топлива. Система диагностики из-за этого выдает ошибку.

Катализатор

ВАЗ

Для самостоятельной диагностики ВАЗ тоже можно воспользоваться диагностическим разъемом, но допустимо сделать это и силами автомобиля. Для этого необходимо зажать кнопку одометра, затем повернуть ключ в первое положение, далее кнопка отпускается. После этого будут прыгать стрелки.

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

Приведенная информация способна помочь опытным и начинающим автолюбителям лучше понимать свою машину. Ошибки возникают время от времени, но главное - уметь вовремя их устранить. Раньше в советских автомобилях таких опций не было, и водитель не мог знать, на что "ругается" двигатель. Сегодня же есть множество возможностей по диагностике, ремонту, контролю состояния. А с помощью современного программного обеспечения нет ничего проще, чем разобраться, как сбросить ошибку двигателя из памяти ЭБУ.

Искать ошибки в программах - непростая задача. Здесь нет никаких готовых методик или рецептов успеха. Можно даже сказать, что это - искусство. Тем не менее есть общие советы, которые помогут вам при поиске. В статье описаны основные шаги, которые стоит предпринять, если ваша программа работает некорректно.

Шаг 1: Занесите ошибку в трекер

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

  1. Вы забыли какую-то важную деталь об ошибке, например, в чем она заключалась.
  2. Вы могли делегировать ее кому-то более опытному.

Трекер поможет вам не потерять нить размышлений и о текущей проблеме, и о той, которую вы временно отложили. А если вы работаете в команде, это поможет делегировать исправление коллеге и держать все обсуждение в одном месте.

Вы должны записать в трекер следующую информацию:

  1. Что делал пользователь.
  2. Что он ожидал увидеть.
  3. Что случилось на самом деле.

Это должно подсказать, как воспроизвести ошибку. Если вы не сможете воспроизвести ее в любое время, ваши шансы исправить ошибку стремятся к нулю.

Шаг 2: Поищите сообщение об ошибке в сети

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

Шаг 3: Найдите строку, в которой проявляется ошибка

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

Шаг 4: Найдите точную строку, в которой появилась ошибка

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

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

Шаг 5: Выясните природу ошибки

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

  1. Ошибка на единицу
    Вы начали цикл for с единицы вместо нуля или наоборот. Или, например, подумали, что метод.count() или.length() вернул индекс последнего элемента. Проверьте документацию к языку, чтобы убедиться, что нумерация массивов начинается с нуля или с единицы. Эта ошибка иногда проявляется в виде исключения Index out of range .
  2. Состояние гонки
    Ваш процесс или поток пытается использовать результат выполнения дочернего до того, как тот завершил свою работу. Ищите использование sleep() в коде. Возможно, на мощной машине дочерний поток выполняется за миллисекунду, а на менее производительной системе происходят задержки. Используйте правильные способы синхронизации многопоточного кода: мьютексы, семафоры, события и т. д.
  3. Неправильные настройки или константы
    Проверьте ваши конфигурационные файлы и константы. Я однажды потратил ужасные 16 часов, пытаясь понять, почему корзина на сайте с покупками виснет на стадии отправки заказа. Причина оказалась в неправильном значении в /etc/hosts , которое не позволяло приложению найти ip-адрес почтового сервера, что вызывало бесконечный цикл в попытке отправить счет заказчику.
  4. Неожиданный null
    Бьюсь об заклад, вы не раз получали ошибку с неинициализированной переменной. Убедитесь, что вы проверяете ссылки на null , особенно при обращении к свойствам по цепочке. Также проверьте случаи, когда возвращаемое из базы данных значение NULL представлено особым типом.
  5. Некорректные входные данные
    Вы проверяете вводимые данные? Вы точно не пытаетесь провести арифметические операции с введенными пользователем строками?
  6. Присваивание вместо сравнения
    Убедитесь, что вы не написали = вместо == , особенно в C-подобных языках.
  7. Ошибка округления
    Это случается, когда вы используете целое вместо Decimal , или float для денежных сумм, или слишком короткое целое (например, пытаетесь записать число большее, чем 2147483647, в 32-битное целое). Кроме того, может случиться так, что ошибка округления проявляется не сразу, а накапливается со временем (т. н. Эффект бабочки).
  8. Переполнение буфера и выход за пределы массива
    Проблема номер один в компьютерной безопасности. Вы выделяете память меньшего объема, чем записываемые туда данные. Или пытаетесь обратиться к элементу за пределами массива.
  9. Программисты не умеют считать
    Вы используете некорректную формулу. Проверьте, что вы не используете целочисленное деление вместо взятия остатка, или знаете, как перевести рациональную дробь в десятичную и т. д.
  10. Конкатенация строки и числа
    Вы ожидаете конкатенации двух строк, но одно из значений - число, и компилятор пытается произвести арифметические вычисления. Попробуйте явно приводить каждое значение к строке.
  11. 33 символа в varchar(32)
    Проверяйте данные, передаваемые в INSERT , на совпадение типов. Некоторые БД выбрасывают исключения (как и должны делать), некоторые просто обрезают строку (как MySQL). Недавно я столкнулся с такой ошибкой: программист забыл убрать кавычки из строки перед вставкой в базу данных, и длина строки превысила допустимую как раз на два символа. На поиск бага ушло много времени, потому что заметить две маленькие кавычки было сложно.
  12. Некорректное состояние
    Вы пытаетесь выполнить запрос при закрытом соединении или пытаетесь вставить запись в таблицу прежде, чем обновили таблицы, от которых она зависит.
  13. Особенности вашей системы, которых нет у пользователя
    Например: в тестовой БД между ID заказа и адресом отношение 1:1, и вы программировали, исходя из этого предположения. Но в работе выясняется, что заказы могут отправляться на один и тот же адрес, и, таким образом, у вас отношение 1:многим.

Если ваша ошибка не похожа на описанные выше, или вы не можете найти строку, в которой она появилась, переходите к следующему шагу.

Шаг 6: Метод исключения

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

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

Шаг 7: Логгируйте все подряд и анализируйте журнал

Пройдитесь по каждому модулю или компоненту и добавьте больше сообщений. Начинайте постепенно, по одному модулю. Анализируйте лог до тех пор, пока не проявится неисправность. Если этого не случилось, добавьте еще сообщений.

Ваша задача состоит в том, чтобы вернуться к шагу 3, обнаружив, где проявляется ошибка. Также это именно тот случай, когда стоит использовать сторонние библиотеки для более тщательного логгирования.

Шаг 8: Исключите влияние железа или платформы

Замените оперативную память, жесткие диски, поменяйте сервер или рабочую станцию. Установите обновления, удалите обновления. Если ошибка пропадет, то причиной было железо, ОС или среда. Вы можете по желанию попробовать этот шаг раньше, так как неполадки в железе часто маскируют ошибки в ПО.

Если ваша программа работает по сети, проверьте свитч, замените кабель или запустите программу в другой сети.

Ради интереса, переключите кабель питания в другую розетку или к другому ИБП. Безумно? Почему бы не попробовать?

Если у вас возникает одна и та же ошибка вне зависимости от среды, то она в вашем коде.

Шаг 9: Обратите внимание на совпадения

  1. Ошибка появляется всегда в одно и то же время? Проверьте задачи, выполняющиеся по расписанию.
  2. Ошибка всегда проявляется вместе с чем-то еще, насколько абсурдной ни была бы эта связь? Обращайте внимание на каждую деталь. На каждую. Например, проявляется ли ошибка, когда включен кондиционер? Возможно, из-за этого падает напряжение в сети, что вызывает странные эффекты в железе.
  3. Есть ли что-то общее у пользователей программы, даже не связанное с ПО? Например, географическое положение (так был найден легендарный баг с письмом за 500 миль).
  4. Ошибка проявляется, когда другой процесс забирает достаточно большое количество памяти или ресурсов процессора? (Я однажды нашел в этом причину раздражающей проблемы «no trusted connection» с SQL-сервером).

Шаг 10: Обратитесь в техподдержку

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

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

  1. Позовите кого-нибудь еще.
    Попросите коллегу поискать ошибку вместе с вами. Возможно, он заметит что-то, что вы упустили. Это можно сделать на любом этапе.
  2. Внимательно просмотрите код.
    Я часто нахожу ошибку, просто спокойно просматривая код с начала и прокручивая его в голове.
  3. Рассмотрите случаи, когда код работает, и сравните их с неработающими.
    Недавно я обнаружил ошибку, заключавшуюся в том, что когда вводимые данные в XML-формате содержали строку xsi:type="xs:string" , все ломалось, но если этой строки не было, все работало корректно. Оказалось, что дополнительный атрибут ломал механизм десериализации.
  4. Идите спать.
    Не бойтесь идти домой до того, как исправите ошибку. Ваши способности обратно пропорциональны вашей усталости. Вы просто потратите время и измотаете себя.
  5. Сделайте творческий перерыв.
    Творческий перерыв - это когда вы отвлекаетесь от задачи и переключаете внимание на другие вещи. Вы, возможно, замечали, что лучшие идеи приходят в голову в душе или по пути домой. Смена контекста иногда помогает. Сходите пообедать, посмотрите фильм, полистайте интернет или займитесь другой проблемой.
  6. Закройте глаза на некоторые симптомы и сообщения и попробуйте сначала.
    Некоторые баги могут влиять друг на друга. Драйвер для dial-up соединения в Windows 95 мог сообщать, что канал занят, при том что вы могли отчетливо слышать звук соединяющегося модема. Если вам приходится держать в голове слишком много симптомов, попробуйте сконцентрироваться только на одном. Исправьте или найдите его причину и переходите к следующему.
  7. Поиграйте в доктора Хауса (только без Викодина).
    Соберите всех коллег, ходите по кабинету с тростью, пишите симптомы на доске и бросайте язвительные комментарии. Раз это работает в сериалах, почему бы не попробовать?

Что вам точно не поможет

  1. Паника
    Не надо сразу палить из пушки по воробьям. Некоторые менеджеры начинают паниковать и сразу откатываться, перезагружать сервера и т. п. в надежде, что что-нибудь из этого исправит проблему. Это никогда не работает. Кроме того, это создает еще больше хаоса и увеличивает время, необходимое для поиска ошибки. Делайте только один шаг за раз. Изучите результат. Обдумайте его, а затем переходите к следующей гипотезе.
  2. «Хелп, плиииз!»
    Когда вы обращаетесь на форум за советом, вы как минимум должны уже выполнить шаг 3. Никто не захочет или не сможет вам помочь, если вы не предоставите подробное описание проблемы, включая информацию об ОС, железе и участок проблемного кода. Создавайте тему только тогда, когда можете все подробно описать, и придумайте информативное название для нее.
  3. Переход на личности
    Если вы думаете, что в ошибке виноват кто-то другой, постарайтесь по крайней мере говорить с ним вежливо. Оскорбления, крики и паника не помогут человеку решить проблему. Даже если у вас в команде не в почете демократия, крики и применение грубой силы не заставят исправления магическим образом появиться.

Ошибка, которую я недавно исправил

Это была загадочная проблема с дублирующимися именами генерируемых файлов. Дальнейшая проверка показала, что у файлов различное содержание. Это было странно, поскольку имена файлов включали дату и время создания в формате yyMMddhhmmss . Шаг 9, совпадения : первый файл был создан в полпятого утра, дубликат генерировался в полпятого вечера того же дня. Совпадение? Нет, поскольку hh в


Top