Как я анализирую BSOD и информацию об ошибке, которую он предоставит мне?

Я обычно использую INSERT IGNORE, и это походит точно на вид поведения, которое Вы ищете также. Пока Вы знаете, что строки, которые вызвали бы индексные конфликты, не будут вставлены, и Вы планируете свою программу соответственно, она не должна доставлять неприятности.

8
задан Wim ten Brink 24 August 2009 в 08:04
поделиться

2 ответа

Если вам нужен довольно простой способ выяснить причину сбоя ОС, который будет работать ~ 90% времени (при условии, что у вас есть аварийный дамп), попробуйте следующее:

  • Загрузите WinDbg как часть пакета Debugging tools для Windows . Обратите внимание, что вам нужно установить только компонент под названием «Инструменты отладки для Windows».
  • Запустить WinDbg
  • Выберите «Открыть аварийный дамп» в меню файла
  • Когда файл дампа загрузится, введите анализировать -v и нажмите ввод
  • WinDbg выполнит автоматический анализ сбоя и предоставит огромное количество информации о состоянии системы на момент сбоя. Обычно он может сказать вам, какой модуль был неисправен и какой тип ошибки вызвал сбой. Вы также должны получить трассировку стека, которая может вам помочь, а может и нет.
  • Еще одна полезная команда - kb , которая распечатывает трассировку стека. Найдите в этом списке строку, содержащую .sys . Обычно это драйвер, который вызвал сбой.

Обратите внимание, что вам придется настроить символы в WinDbg, если вы хотите, чтобы трассировка стека давала вам имена функций. Для этого:

  • Создайте папку, например C: \ symbols
  • В WinDbg откройте File -> Symbol File Path
  • Add: SRV * C: \ symbols * http: // msdl. microsoft.com/download/symbols

Это будет кэшировать файлы символов с серверов Microsoft.

Если автоматического анализа недостаточно, то WinDbg предоставляет множество команд, позволяющих точно определить, что происходило на время крушения. Файл справки - хорошее место для начала в этом сценарии.

найдите строку, содержащую .sys . Обычно это драйвер, который вызвал сбой.

Обратите внимание, что вам нужно будет настроить символы в WinDbg, если вы хотите, чтобы трассировка стека давала вам имена функций. Для этого:

  • Создайте папку, например C: \ symbols
  • В WinDbg откройте File -> Symbol File Path
  • Add: SRV * C: \ symbols * http: // msdl. microsoft.com/download/symbols

Это будет кэшировать файлы символов с серверов Microsoft.

Если автоматического анализа недостаточно, то WinDbg предоставляет множество команд, позволяющих точно определить, что происходило на время крушения. Файл справки - хорошее место для начала в этом сценарии.

найдите строку, содержащую .sys . Обычно это драйвер, который вызвал сбой.

Обратите внимание, что вам придется настроить символы в WinDbg, если вы хотите, чтобы трассировка стека давала вам имена функций. Для этого:

  • Создайте папку, например C: \ symbols
  • В WinDbg откройте File -> Symbol File Path
  • Добавьте: SRV * C: \ symbols * http: // msdl. microsoft.com/download/symbols

Это будет кэшировать файлы символов с серверов Microsoft.

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

Обратите внимание, что вам придется настроить символы в WinDbg, если вы хотите, чтобы трассировка стека давала вам имена функций. Для этого:

  • Создайте папку, например C: \ symbols
  • В WinDbg откройте File -> Symbol File Path
  • Add: SRV * C: \ symbols * http: // msdl. microsoft.com/download/symbols

Это будет кэшировать файлы символов с серверов Microsoft.

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

Обратите внимание, что вам нужно будет настроить символы в WinDbg, если вы хотите, чтобы трассировка стека давала вам имена функций. Для этого:

  • Создайте папку, например C: \ symbols
  • В WinDbg откройте File -> Symbol File Path
  • Add: SRV * C: \ symbols * http: // msdl. microsoft.com/download/symbols

Это будет кэшировать файлы символов с серверов Microsoft.

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

\ symbols * http: //msdl.microsoft.com/download/symbols

Это приведет к кэшированию файлов символов с серверов Microsoft.

Если автоматического анализа недостаточно, то WinDbg предоставляет множество команд для включения вам нужно выяснить, что именно происходило во время аварии. Файл справки - хорошее место для начала в этом сценарии.

\ symbols * http: //msdl.microsoft.com/download/symbols

Это будет кэшировать файлы символов с серверов Microsoft.

Если автоматического анализа недостаточно, то WinDbg предоставляет множество команд для включения вам нужно выяснить, что именно происходило во время аварии. Файл справки - хорошее место для начала в этом сценарии.

6
ответ дан 5 December 2019 в 19:01
поделиться

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

Что происходит, когда ОС выходит из строя, так это то, что она записывает файл дампа ядра, в зависимости от текущих флагов и так далее, вы получаете больше или меньше информации в нем. Вы можете загрузить файл дампа в windbg или другом отладчике. Windbg имеет полезную команду ! Analysis , которая проверяет файл дампа и дает вам подсказки относительно корзины, в которую произошел сбой, и возможных виновников. Также проверьте документацию windbg об общей причине проверки ошибок и о том, что вы можете сделать для ее устранения.

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