У меня есть некоторый код обработки изображений, который выполняется в фоновом потоке и обновляет элемент управления изображения в потоке пользовательского интерфейса, когда он завершает обработку с помощью Dispatcher.BeginInvoke (). Когда я запускаю свое приложение вне отладчика, оно довольно часто вылетает. Как только я запускаю его в отладчике, я не могу этого добиться вообще. Видимо, разница во времени достаточна, чтобы сделать мою жизнь несчастной прямо сейчас; -)
Я пытался поместить блоки try / catch вокруг любого кода, который кажется актуальным, и регистрировать любые ошибки, которые появляются, но безрезультатно - он почему-то ускользает от меня, и я не уверен, где еще искать.
Моя надежда на использование отладчика состояла в том, чтобы установить режим отлова исключений отладчика, чтобы он прерывался всякий раз, когда выдается какое-либо исключение, но так как я не могу получить исключение во время отладки, я не могу выяснить, куда выдает мой код .
Я могу присоединиться к своему сбойному процессу (поскольку он остается на экране, просто полностью не отвечает), приостановить отладчик и посмотреть, где находится каждый поток в коде, но это на самом деле мне не помогает - понятия не имею каково действительное исключение.
Любые предложения о том, как поступить?
Edit:
- Я использую System.Diagnostics.Trace.WriteLine () с DbgView во всех возможных местах. Я могу отследить, где, по-видимому, происходит исключение, я не могу выяснить, что такое , что является исключением, и это важно.
- Раньше я использовал WinDBG + SOS для отслеживания утечек памяти, но не для выявления труднодоступных исключений. Кто-нибудь может предложить ресурсы для использования WinDBG + SOS в этом качестве?