Como ver detalhes de exceção gerenciada em WinDBG?
-
08-07-2019 - |
Pergunta
VS2005 C # Compiler falha durante o processo de compilação noturno da nossa equipe. Eu atribuo a ele com WinDBG, carga extensões SOS, imprima a pilha de chamadas, mas não pode ver informações exceção.
Eu tentei PrintException, da seguinte forma:
0:000> !PrintException There is no current managed exception on this thread
Aqui está o topo da pilha de chamadas:
0:000> !CLRStack OS Thread Id: 0x9fc (0) ESP EIP 0012ee08 77e4bef7 [ComPlusMethodFrameGeneric: 0012ee08] Microsoft.Build.Tasks.Hosting.ICscHostObject.Compile() 0012ee18 6be671ab Microsoft.Build.Tasks.Csc.CallHostObjectToExecute() 0012ee48 6c0aed17 Microsoft.Build.Utilities.ToolTask.Execute()
Solução
A razão que você não está vendo uma exceção é que o compilador C # não está escrito em código gerenciado. É um projeto C ++ e, portanto, não vai lançar uma exceção CLR. Você precisa olhar para um erro nativo em seu lugar.
Outras dicas
I got it! Tudo o que precisava ser feito era para salvar um arquivo de despejo (* .dmp) de WinDBG e re abra-lo no Visual Studio.
Para um olhar solução completa em minha pergunta antes
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow