Baixando os símbolos corretos localmente para análise de um dump do SQL Server no WinDbg.


Pessoal, tranquilo?

Hoje vou passar uma dica para quem já tentou usar a ferramenta WinDbg, que acompanha o Debugging Tools for Windows para analisar algum dump gerado pelo SQL Server e não conseguiu por falta dos símbolos apropriados.

                Para que você consiga extrair corretamente as informações usando a ferramenta WinDbg é necessário que você tenha os símbolos correspondentes ao executável da aplicação carregados na mesma, imagine que você tem um servidor com SQL Server instalado sem acesso à internet e deseja analisar um crash dump do mesmo em sua própria estação de trabalho, como fazer para ter os símbolos corretos para a análise localmente? Siga os procedimentos abaixo!

1.  O primeiro passo é instalar o Debugging Tools for em sua máquina, para obter sempre a última versão da ferramenta você pode fazer o download a partir do link abaixo:


2.  Uma vez que o WinDbg está instalado, crie uma uma variável de ambiente de sistema em seu Windows apontando para o servidor de símbolos públicos da Microsoft, você fara isso clicando com o direito em Computador > Propriedades > Configurações Avançadas do Sistema > Variáveis de Ambiente > Novo. Escolha o nome da nova variável em meu caso deixei como _NT_SYMBOL_PATH, quanto ao valor deixe como: SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols, o que está em amarelo é um diretório da sua preferência que será criado automaticamente pelo WinDbg no próximo passo.

3.  Agora vamos abrir o dump é forçar que o WinDbg baixe os símbolos da Internet, vá em File > Open Crash Dump > Selecione o dump que deseja analisar e clique em Abrir. 

4.  Digite o comando .sympath para verificar se o caminho da onde os símbolos serão carregados está correto. , você deverá ver algo como o abaixo:

0:015> .sympath
Symbol search path is: SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*c:\websymbols*http://msdl.microsoft.com/download/symbols

Lembrando que no meu caso utilizei o diretório c:\websymbols.

5.  Agora digite o comando !sym noisy para verificar se os símbolos estão sendo carregados corretamente, você deverá ver algo como o abaixo:

0:015> !sym noisy
noisy mode - symbol prompts on

6.  Agora vamos forçar o WinDbg a baixar os símbolos correspondentes a build do SQL Server do dump que você deseja analisar, primeiro digite .reload, depois digite o comando kb,  no diretório que você escolheu para baixar os símbolos perceba que irá aparecer uma pasta chamada sqlservr.pdb e dentro dela existe uma subpasta que irá conter um arquivo chamado download.error, conforme imagem abaixo:



Não se preocupe, o arquivo ira ter este nome enquanto ele não terminar de ser baixado, se você ficar atualizando a pasta você irá notar que seu tamanho ira estar crescendo, ao término o arquivo ira ser renomeado com o mesmo nome da pasta principal em que reside, sqlservr.pdb.

7. Perceba agora que no WinDbg você já ira ser capaz de visualizar as informações das stacks das threads, caso o dump contenha mais de uma, usando os símbolos que acabaram de ser baixados, algo como a imagem abaixo:



        Links de referência:


        Espero que o post tenha sido útil a vocês! Um abraço e até a próxima!


Nenhum comentário:

Postar um comentário