h1

Depurando aplicações utilizando o DbgClr

julho 23, 2007

Todos nós desenvolvedores já passamos por aventuras quando o asunto é depurar aplicações web, em servidores onde não se pode instalar nada além do
que já está instalado.

Agora vamos lá, quem é o discipúlo do Ninja Gaiden que consegue descobrir por que diabos uma aplicação está derrubando seu IIS a cada 5 minutos
sem gerar um misero arquivo de log. Numa situação dessas ter o Visual Studio instalado e atachado no processo do IIS seria o cenário ideal, mas devido
as restrições acima mencionadas não é possível.

Mas não desanime, existe uma ferramenta que pode te ajudar e muito nessas situações é o DbgCLR. Essa ferramenta está localizada no diretório,
%ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgClr.exe. Essa ferramenta é um Visual Studio bem mirradinho, mas que dá conta do
recado quando o que você precisa é efetuar uma depuração urgente.

Interface do DbgClr

O DbgClr pode ser copiado para o computador onde sua aplicação está instalada e ai é só executar. A única exigência, é que você tenha os fontes da
aplicação e os simbolos referentes a versão da aplicação que está rodando no computador a ser depurado. Com isso em mãos sua experiência de depuração
será bem mais tranquila.

Legal, mas como eu utilizo essa bomba?

Coloque os fontes da aplicação em um diretório da máquina onde a aplicação está instalada e copie os simbolos da aplicação para o diretório Bin da sua
aplicação. Feito isso, execute o DbgClr.exe e selecione a opção File -> Open -> File e selecione todos os arquivos .cs ou .vb da sua aplicação.

Após abrir fontes da sua aplicação e definido os breakpoints desejados. Selecione a opção Tools -> Attach to process, uma nova janela será
exibida onde você poderá selecionar o processo do IIS a ser depurado, que é o w3wp.exe. Lembre-se que para cada Application Pool o IIS cria uma
instância do processo w3wp.

Abraços.

3 comentários

  1. Fala, Thiago!

    Estou comentando aqui com dois objetivos: parabenizá-lo por voltar a escrever e por expressar meu ânimo e desânimo com esse tal de DbgClr.

    Meu ânimo porque é um depurador ideal para servidores e outros ambientes onde ferramentas de desenvolvimento não são bem-vindas.

    Meu desânimo porque essa ferramenta não depura código não-gerenciado =(

    O jeito é continuar usando o WinDbg mesmo. Mas, cá entre nós, quem precisa de mais? =)

    []s


  2. Fala Wanderlão!

    Então cara, a vantagem desse cara com relação ao WinDbg é que no DbgClr você consegue rodar seu código gerenciado Step-by-Step, agora quando você utiliza o WinDbg, você só consegue obter informações sobre o ambiente. Ex.: Exceptions, Stack, Variáveis e step-by-step só de código assembly.O que não é muito produtivo na maioria dos casos.

    Valeu!!!

    []’s


  3. Muito legal seu post Thiago,

    Continue blogando!

    []s,



Deixe um comentário