Что: собирать информацию при сбое программного обеспечения - PullRequest
4 голосов
/ 04 августа 2009

Я заметил, что многие настольные приложения (такие как Firefox, Google Chrome, VS 2008 и т. Д.) Имеют аварийный дамп, который можно отправлять поставщикам программного обеспечения для целей анализа. Я собираюсь создать такой аварийный дамп самостоятельно. Я делаю .Net

Какова наилучшая практика, когда нужно собирать какие данные, чтобы собранных данных было достаточно для воспроизведения и исправления ошибок, но не более того?

Ответы [ 3 ]

5 голосов
/ 04 августа 2009

Я собираю имя исключения, отслеживаю стек и спрашиваю клиента, что он делал во время сбоя. Обычно этого достаточно.

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

3 голосов
/ 04 августа 2009

Я построил систему ведения журнала, которая сообщает непосредственно в мою базу данных ошибок, и она сообщает следующую информацию:

  • Неидентифицируемая информация о компьютере и среде выполнения (например, версия Windows, некоторые региональные настройки, объем памяти, тип процессора и т. Д.)
  • Stack-trace и информация о самом исключении
  • Загруженные сборки, номера версий
  • Загруженные dll-файлы, которые не являются сборками (вы новее знаете, когда dll, введенная Skype для обработки вызова горячей клавиши, может испортить вашу собственную программу)

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

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

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

2 голосов
/ 12 августа 2009

Почему бы не использовать структуру Mini dump, которую Microsoft уже предоставляет. Я рекомендую взглянуть на функции MiniDumpCallback и MiniDumpWriteDump, которые позволяют приложению дополнять мини-дамп дополнительными данными, специфичными для приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...