2013-04-10 3 views
1

У меня есть решение VS2012 и приложение WPF, работает без исключения в режиме выпуска и отладки, но если я попытаюсь профилировать его, приложение сработает, когда я выполню некоторые действия пользовательского интерфейса (открытие виртуальных машин, их элементы управления и т. Д.)Могу ли я отлаживать при профилировании?

Нужно ли вообще отлаживать исключение, когда приложение запускается в режиме профилирования?

+0

Проблема исчезла после обновления 2 для Visual Studio 2012 –

+0

IMHO, если причина, по которой вы профилируете, заключается в поиске «узких мест» (в отличие от простого измерения), лучший способ - использовать отладчик *. Например, в [* этот ответ *] (http://stackoverflow.com/a/927773/23771), где есть ускорение в 43 раза. Это похоже на собачьих по сравнению с Бентли. Что бы вы предпочли в Арктике? –

ответ

0

Нет. Существует множество причин, по которым приложение может потерпеть неудачу только при его профилировании. Обычно это что-то простое, так как рабочий каталог отличается тем, что ваше приложение упадет, когда оно сделает что-то неразумно, как попытка открыть файл с относительным именем пути. И не пытайтесь/улавливать проблему с отсутствующим файлом.

Что нужно, чтобы сосредоточиться на том, что произойдет, когда ваше приложение запустится на машине пользователя и произойдет сбой. Без профайлера, но та же самая проблема, не зная, почему он разбился. Вам нужно потратить немного времени на написание кода, который сообщает о необработанных исключениях. Напишите обработчик события для события AppDomain.CurrentDomain.UnhandledException. Запишите или отобразите значение e.ExceptionObject.ToString(). Теперь у вас есть хорошее сообщение об исключении и трассировка Holy Stack, которая показывает вам, как именно ваша программа закончилась. Почти всегда достаточно хорошо, чтобы понять небольшое изменение в вашем коде, чтобы предотвратить крах. Или лучший способ помочь ИТ-персоналу пользователя устранить проблему.

0

Вы всегда можете подключить отладчик к процессам. Просто откройте Debug-> Attach to proces. Если вы хотите сломать любое исключение, просто нажмите Ctrl + Alt + E и выберите подходящую опцию. Если в коде отсутствует исключение, вы можете попытаться загрузить pdb для выбранной DLL.

Смежные вопросы