Отладка производственного приложения C# с файлом pdb или без него

Я создал приложение, которое обрабатывает ошибку и возвращает следующее сообщение об ошибке:

System.NullReferenceException:  
Object reference not set to an instance of an object. 
  at MyApp.Submit_Click(Object sender,EventArgs e)

Я не получаю никакой трассировки стека и не вижу проблемы с тем, что исключение не генерируется должным образом.

У меня есть несколько вопросов о том, как получить эту информацию:

  1. Я записываю exception.ToString(), который обычно дает мне исключение, внутреннее исключение и трассировку стека в моем коде. Нужен ли мне файл .pdb для получения трассировки стека, или .pdb будет добавлять только номера строк?
  2. У меня есть файл .pdb в производстве со связанной dll, но я считаю, что файл pdb из более старой сборки. Может ли это вызвать проблемы с захватом отладочной информации и быть хуже, чем полное отсутствие файла .pdb?

Спасибо за помощь!


person AnotherDeveloper    schedule 05.01.2012    source источник
comment
опубликуйте код в MyApp.Submit_Click(). Учитывая, что вы знаете этот метод, почему вы не можете просто установить точку останова и выполнить отладку?   -  person Mitch Wheat    schedule 05.01.2012


Ответы (1)


Нет, вам не нужен pdb для просмотра трассировки стека, но он вам понадобится для получения номеров строк. И, если у вас есть несинхронизированная версия, вы можете в конечном итоге сообщить неправильные номера строк.

Ваше сообщение об ошибке действительно показывает вам трассировку стека, ее просто не так много, так как это нажатие кнопки:

at MyApp.Submit_Click(Object sender,EventArgs e)
person competent_tech    schedule 05.01.2012