2009-03-26 4 views
4

У меня есть два элемента управления, содержащие DataGridView с на разных стеклах в DockPanel. Если кто-то находится в режиме редактирования, и я переключаю панель, я получаю NullReferenceException, исходящий из метода DataGridViewEndEdit(). Трассировка стека не идет глубже, чем это, и исключение не содержит никакой дополнительной информации.Как узнать, что изначально вызвало исключение, если оно выбрано из кода Microsoft?

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

ответ

5

Если вы подозреваете ошибку в коде MS, вы можете загрузить отладочные символы с сервера символов, загрузить их и проследить через debug? Like so.

Обратите внимание, что символы подпадают под действие одной из различных лицензий. Это может повлиять на вас, если (например) вы работаете над вкладами «моно» и т. Д.

+0

Блестящий, спасибо. Работает очарование! – Simon

1

Следуйте инструкциям по настройке MS symbol server и source server . Установите отладчик, чтобы он разбил NullReferenceException. Затем либо вы получите полный исходный код для отладки, либо, по крайней мере, полную трассировку стека.

Примечание. Указанный QFE включен в SP1.