2014-01-24 2 views
0

При регистрации журналов исключений из базы данных или оценки просмотра событий очень полезно. Много раз нам часто оставалось задаться вопросом, как воспроизвести ошибку, чтобы мы могли ее отладить. Есть несколько хороших практик, которые вы можете применить для сериализации вызовов, а затем позже с некоторой работой воспроизвести ошибку и в конечном итоге отладить и исправить. Мне интересно, какие инструменты и/или лучшие методы существуют там, чтобы эффективно отлаживать ошибки, чтобы быстро исправлять на основе собранной информации об исключениях. Другими словами, собирайте информацию о любом заданном исключении и быстро загружайте в отладочный сеанс \ шаг через код и более эффективно разрешайте ошибки.Как отлаживать исключения

Вот что я хотел бы рассмотреть во сне, но было бы очень полезно, если бы оно существовало.

try 
{ 
    //Do something that breaks 
} 
catch (Exception Ex) 
{ 
    LogExceptionExecution(); 
} 

Сериализовать информацию, собранную из LogExceptionExecution(); Теперь, когда информация сериализована, полностью загрузите информацию и загрузите ее непосредственно в визуальную студию. Затем Visual studio создаст точку останова в начале метода и начнет сеанс отладки. В сеансе отладки было бы загружено все, чтобы воссоздать причину исключения в первую очередь. Это позволит вам отлаживать и исправлять ошибку, не тратя драгоценного времени на то, как воссоздать среду и загрузить код, используемый во время ошибки, для отладки и исправления кода.

+1

Что вы хотите сказать? –

+1

Они сказали - 'Мне интересно, какие инструменты и/или лучшие практики там эффективны для отладки ошибок для быстрого исправления. – OneFineDay

+2

Вы можете просто создать мини-накопитель. – Matt

ответ

5

Для вашего случая, вы должны написать файл Minidump при возникновении исключения. Minidumps - это механизм для «посмертной отладки» - отладка вашего приложения после его «мертвого». Minidump - это моментальный снимок памяти вашего приложения, обычно принимаемый, когда он сталкивается с фатальной ошибкой.

Как создать мини-накопитель в .NET, пожалуйста, прочитайте this.

+0

Спасибо за информацию! Это очень близко или, может быть, даже то, что я искал. – CodeMilian

+0

Этот ответ определенно требует некоторого баланса, мини-пульты имеют довольно серьезные проблемы. Помимо того, что нужно изучить аркану SOS. Одна из больших проблем заключается в том, что вы не можете создать мини-накопитель, вы должны сделать мегабамп, который содержит кучу GC. Это может легко вернуть вам пару концертов. И наиболее строго и неразрешимо, вы должны иметь ** точное совпадение с версией CLR, которую использует клиент. Очень сложно с частотой обновлений безопасности в последнее время. –

+0

@HansPassant, да, больно соответствовать версии CLR, которую использует клиент. – Matt

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