Простая программа может быть ответственна за BSOD?

Если Вы будете смотреть на источник Date.parse (Представьте s в виде строки), метод, который упоминает Nicolas, то Вы будете видеть, что это будет трудно или невозможно создать формат даты, который точно воспроизводит поведение.

, Если Вы просто хотите устранить предупреждение, Вы могли бы поместить @SuppressWarnings({“deprecation”}) внешняя сторона метод, назвав Дату (Строка) конструктор.

, Если Вы действительно хотите гарантировать будущий доступ к этому поведению с будущим JREs, Вы могли бы быть в состоянии просто извлечь метод из источников JDK и поместить его в Ваши собственные источники. Это потребовало бы тщательного чтения лицензий исходного кода и рассмотрения их заявления к Вашему определенному проекту, и не могло бы быть допустимо вообще.

8
задан skaffman 19 October 2009 в 01:41
поделиться

8 ответов

Самый простой способ вызвать BSOD с помощью программы пользовательского пространства - (afaik) убить процесс подсистемы Windows (csrss.exe). Для этого не нужны ни неисправное оборудование, ни ошибка в ядре или драйвере, нужны только права администратора 1 .

Что конкретно делает ваш код? Сообщение об ошибке («Процесс или поток, критичный для работы системы, неожиданно завершился или был завершен.») Звучит как завершение одного из важных системных процессов. Может быть, вы убиваете процесс и случайно выбрали неправильный процесс?

Если возможно, вы можете попытаться получить дамп памяти от этого клиента. Используя Инструменты отладки для Windows , вы можете затем проанализировать этот дамп, как описано здесь .

1 Windows не делает ' t помешает вам сделать это , потому что это «позволяет администраторам контролировать свой компьютер» . Так что это намеренно, а не ошибка. Прочтите статьи Раймонда, и вы поймете, почему.

5
ответ дан 3 November 2019 в 14:19
поделиться

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

  • Стабильность аппаратного обеспечения этой системы
  • Статус этой системы на наличие вирусов / вредоносных программ.

Если вы можете получить физический доступ к клиентскому компьютеру, возможно, стоит запустить полное сканирование на вирусы с помощью новейшего сканера и запустить полную memtest на нем.

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

1
ответ дан 3 November 2019 в 14:19
поделиться

Нет, и это в значительной степени по определению. Худшее, что вы можете сказать, это то, что пользовательское приложение могло «спровоцировать» ошибку Windows или ошибку драйвера. Но современная операционная система для настольных ПК полностью отвечает за свою целостность; BSOD - это нарушение этой целостности. Следовательно, за это отвечает ОС, и только ОС.

(Пример ошибки BSOD, которую может выявить только ваше приложение: антивирусный сканер, реализованный в виде драйвера, вылетает при выполнении файла из сектора 0xFFFFFFFF, сектора, который находится в этом одна машина просто содержит одну DLL вашего приложения)

1
ответ дан 3 November 2019 в 14:19
поделиться

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

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

10
ответ дан 3 November 2019 в 14:19
поделиться

Обычно этого не должно быть. Если это так, то должна быть либо

  • ошибка в ядре Windows (возможная, но очень маловероятная)
  • ошибка в драйвере устройства (не обязательно в устройстве, которое использует ваша программа, это может стать довольно сложным)
  • Ошибка в оборудовании

Я бы поставил на второй вариант (драйвер устройства), но было бы интересно, если бы вы могли предоставить нам более подробный дамп.

4
ответ дан 3 November 2019 в 14:19
поделиться

Короткий ответ - да. Длинный ответ зависит от того, что ваша программа должна делать и как она это делает?

4
ответ дан 3 November 2019 в 14:19
поделиться

У меня возникли проблемы при выходе из приложения без остановки всех процессов и соединений BD при завершении программы (я разбил всю среду IDE). Я помещаю код «остановки и отключения» в событие «Завершить» события «Form_Closed» моей основной формы, и проблема была решена, я не знаю, это ваша ситуация.

Другая проблема может быть, если пользователь пытается получить доступ к тем же ресурсам, которые использует ваше приложение (базы данных, оборудование, сокеты и т. д.). Спросите его / ее о том, какие приложения он / она использует, когда происходит BSOD.

Вирус не может быть уничтожен.

-1
ответ дан 3 November 2019 в 14:19
поделиться

Да, может, но по разным причинам.

Вот почему мы тестируем на разных машинах, операционных системах, оборудовании и т. Д.

Установили ли вы какие-то требования для своей программы и следит ли за ними ваш пользователь?

3
ответ дан 3 November 2019 в 14:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: