Como faço para descobrir o que originalmente causou uma exceção, se ele é jogado a partir do código da Microsoft?
-
22-08-2019 - |
Pergunta
Eu tenho dois controles contendo DataGridView
s em diferentes painéis em um DockPanel
. Se estiver em modo de edição e eu mudar painel, recebo uma NullReferenceException
jogado de dentro método DataGridView
do EndEdit()
. O rastreamento de pilha não ir mais fundo do que isso e a exceção não contém mais informações.
Eu olhei esse método no refletor, e eu não posso ver nada, obviamente nulo. Eu suspeito que o problema é realmente no meu código, mas a exceção está sendo relançada de dentro do código da Microsoft e que de redefinir o rastreamento de pilha. Como faço para descobrir o que originalmente causou a exceção?
Solução
Se você suspeitar de um bug no código de MS, você pode baixar os símbolos de depuração do servidor símbolo, carregá-los e segui-lo através de depuração? assim como .
Note que os símbolos estão sujeitos a uma das várias licenças. Isso pode afetar você, se (por exemplo) você trabalha em "mono" contribuições etc.
Outras dicas
Você já olhou para a propriedade InnerException?
Siga as instruções para configurar MS e servidor de símbolos < a href = "http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx" rel = "nofollow noreferrer" > servidor de origem 1 . Defina o depurador para quebrar em NullReferenceException sendo lançada. Então, ou você vai ter o código fonte completo para depuração, ou pelo menos um rastreamento de pilha completa.
1 Note, o QFE listados está incluído no SP1.