Отладка исключения, которое происходит только с exe, но не из IDE - PullRequest
3 голосов
/ 08 июля 2010

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

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

Ответы [ 5 ]

3 голосов
/ 08 июля 2010

Я могу подумать о двух вещах:

  • Запустить приложение из-за пределов IDE, но затем подключиться к процессу.Может случиться так, что при запуске из отладчика среда будет каким-то образом отличаться
  • Использовать adplus (см. Мой предыдущий пост здесь , чтобы поймать аварийный дамп, чтобы вы могли проанализировать его позже
2 голосов
/ 08 июля 2010

Присоедините отладчик после запуска программы.Это гарантирует, что отладчик не сможет повлиять на любые побочные эффекты, такие как каталог запуска, процесс размещения и оптимизация JIT.

Запустите вашу программу.Инструменты + Присоединить к процессу.

2 голосов
/ 08 июля 2010

Для начала выясните, что является исключением.Вы уже видите детали исключения?Предлагает ли вам возможность подключения к отладчику?Можете ли вы поймать исключение и зарегистрировать его?

1 голос
/ 08 июля 2010

Вы должны иметь возможность подключить глобальный обработчик исключений:

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

А затем создайте функцию для обработки исключения:

private void Application_ThreadException(object sender,System.Thread.ThreadExceptionEventArgs e) {
    // Do whatever here
}
1 голос
/ 08 июля 2010

У меня есть решение , написанное на C ++ - CLI, которое должно быть достаточно простым для переноса на C #.

Если это происходит внутри самой основной функции, вы пытались обернуть весь свой кодв:

try
{
    main();
}
catch( System.Exception^ e)
{
    // do something
}

Извинения за C ++ - вопрос моего ответа - прошло много времени с тех пор, как я написал любой C #; -)

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