Stack rastrear com o número da linha incorreta
-
26-09-2019 - |
Pergunta
Por que um show de rastreamento de pilhas "Linha 0", mas apenas para um quadro no rastreamento da pilha?
por exemplo.
...
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at My.LibraryA.Some.Method():line 16
at My.LibraryB.Some.OtherMethod():line 0
at My.LibraryB.Some.Method():line 22
at My.LibraryA.Some.Method():line 10
Fundo:
Eu tenho um aplicativo que está falhando com uma exceção e está registrando um rastreamento de pilha no seu arquivo de log. Quando a aplicação foi construída, todas as montagens foram compiladas com informações completas de depuração (propriedades do projeto -> Build -> Advanced -> Informações de depuração -> Full) e assim os arquivos PDB foram gerados. Para me ajudar a diagnosticar de onde vem o erro, retire os arquivos PDB no aplicativo bin
diretório e reproduziu a exceção. Todos os números de linha para cada quadro da pilha parecem corretos, com exceção de um que exibe "Linha 0" como sua fonte.
Solução
De fato, isso foi o método que ele sugeriu, como Eric sugeriu.
Consegui reproduzir o erro original localmente, mas somente ao compilar em uma construção de liberação. Como eu tinha o PDBS, pude passar pelo código e encontrar o problema.