можно получить информацию о сбое приложения, которое вызывает сообщение об ошибке Microsoft Windows? - PullRequest
0 голосов
/ 06 ноября 2011

У меня есть приложение, написанное на C #. Это приложение блокируется окнами и возвращает что-то вроде: «Приложение xxx перестало работать».

Возможно ли выяснить причину этого сбоя? Я пытался использовать try {} catch {} в приложении безуспешно. Он работает на моем компьютере, но не на компьютере моего друга. Оба компьютера имеют одинаковую конфигурацию:

  • Windows 7 7 Ultimate 32 бит
  • Процессор: 2,13 ГГц
  • оперативная память: 2 ГБ

UPDATE

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

Faulting application name: xxxx.exe, version: 1.0.0.0,time stamp:0x4eb5e63a
Fault Module Name:KERNELBASE.dll, version: 6.1.7600.16850, time stamp:0x4e21132b
Exception Code:0xe0434352
Identification of the process that failed: 0x26c
Start time of the faulting application: ... 
Faulting application path: ... \xxx.exe 
Path F module failures: C:\Windows\system32\KERNELBASE.dll
Report ID: xxxxx-yyyy-dddd-dddd-aaaaaa

ОБНОВЛЕНИЕ 2

Наконец я нашел функцию, которая вызывает исключение. обрабатывая функцию с try {} catch (Exception Err) {} Я нашел некоторые детали исключения:

Err.Message:The device is not ready
Err.Source: mscorlib

как я могу это исправить?

Ответы [ 2 ]

3 голосов
/ 07 ноября 2011

«Работает на моей машине» - очень распространенная проблема с множеством причин.Обычно причина в том, что между двумя машинами что-то не так.Несколько простых вещей, которые можно исключить:

  • Является ли компьютер вашего друга машиной для разработки с установленной Visual Studio?
  • Ваше приложение полагается на определенный путь (например, диск D:), базу данных, службу, COM-компонент или что-то еще, что должен включать пакет установки?
  • Ваш друг настроил UAC не так, как вы?Один из вас входит в систему как администратор учетной записи, а другой использует другую учетную запись, которая входит в группу администраторов?
  • тестировали ли вы отладочную версию на компьютере вашего друга?Отладочные версии обычно не распространяются
  • Вы тестировали версию x exe и версию y некоторой библиотеки классов, забыв, что вчера вы внесли изменения в одну из них?
  • у вашего друга есть разные версии IE, Office или других компонентов, которые могут использоваться приложением?У вас есть разные настройки IE (например, прокси?)
  • два компьютера полностью заняты обновлениями и пакетами обновлений?
  • приложение пытается получить доступ к некоторому оборудованию (микрофон, веб-камера)) который не находится на компьютере вашего друга или важно различается между двумя компьютерами?

Дословный ответ на ваш вопрос - да, вы можете подписаться на что-то под названием Отчеты об ошибках Windows и получать отчеты, которыедиалог говорит, что это коллекционирование.Однако я искренне сомневаюсь, что вы хотите их.У вас должна быть вся необходимая информация, чтобы найти ошибку там, где вы находитесь.Сконцентрируйтесь на различиях (даже если вы думаете, что это не имеет значения) между двумя машинами.

1 голос
/ 06 ноября 2011

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

Для решения вашего вопроса попробуйте использовать файл MDbg.exe из .Net Framework SDK или Visual Studio. У Microsoft также есть другие инструменты отладки .

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