Ух ты, это трудно без реальной дампы, через которую тыкаешь. :-)
Вот пара вопросов ... и затем я добавлю одну команду, которая ранее не была указана в ответах выше.
Вопросы:
Вы уверены, что поймали первое исключение, а не только последнее, которое было обработано и сорвано в процессе?
Можете ли вы взглянуть на собственный стек вызовов для потока, выдавшего исключение.
Примечание: должен быть вызов RaiseException () или нарушение прав доступа.
Остерегайтесь асинхронных исключений, которые не имеют абсолютно никакого отношения к вашему коду и могут войти и загнать вас в блок перехвата ... или еще хуже (Thread.AbortException / System.OutofMemoryException и ... StackOverflowException: - )
Чтобы продолжить, вы запускаете ! Dumpstack в неисправном потоке. Вывод не точен , однако он делает потрясающую работу по обходу стека вызовов потоков, и вы можете повезет, и вы увидите в сообщении символ @ , который ссылается на исключение с .cxr и .exr. Если вы это сделаете, то можете запустить .cxr -cxr-address и посмотреть, какое первое исключение было в цепочке исключений.
Точка: Хотя я могу быть сторонним в вопросе, если исключение вызвало WER, оно было не обработано и остановило процесс. Возможно, вы захотите зарегистрировать начальный стек вызовов или добавить предыдущее исключение как внутреннее исключение, чтобы Вы можете определить основную причину.
Спасибо,
Аарон