Depuração avançada para Windows: o sistema em produção parou, o que fazer? Márcio Fábio Althmann Márcio Fábio Althmann Benner Sistemas @marcioalthmann www.marcioalthmann.net [email protected] #Sinceramente, peço desculpas para qualquer um que der manutenção a está página. Mas por favor, deixe minha Mãe fora disto! Foi o jeito que sobrou para attender a demanda Qual o problema aqui? ORA-01017: invalid username/password; logon denied O real problema? Produção Homologação Sistema YYZ 1.0.0.0 Sistema YYZ 1.1.0.0 Sistema YYZ 1.0.0.0 Dump A dump file is a snapshot of an app at the point in time the dump is taken. It shows what process was executing and what modules were loaded. If the dump was saved with heap information, the dump file contains a snapshot of what was in the app's memory at that point in time. Como criar dumps? Utilizando o gerenciador de tarefas Utilizando o DebugDiag https://www.microsoft.com/en-us/download/details.aspx?id=49924 Utilizando o ProcDump https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx ProcDump Criar dump quando o processo consumir 40% da CPU por 5 segundos procdump -c 40 -s 5 -ma pid-do-processo/nome-do-processo Criar dump quando o processo consumir 800mb de memória por 5 segundos procdump -m 800 -s 5 -ma pid-do-processo/nome-do-processo Criar dump quando o processo disparar uma exception que contém "zero" na mensagem procdump -e 1 -f zero -ma pid-do-processo/nome-do-processo https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx WinDbg WinDbg is a kernel-mode and user-mode debugger that is included in Debugging Tools for Windows. O WinDbg faz parte do SDK do Windows Alguns comandos Mostra todas as threads ~ Carrega uma extensão .load <extension> Mostra o tempo de execução (sistema, processo, kernel e user) .time Mostra todos os processos em execução no sistema .tlist Habilita a DML (Debugger Markup Language) .prefer_dml 1 http://windbg.info/doc/1-common-cmds.html SOS.dll The SOS Debugging Extension (SOS.dll) helps you debug managed programs in Visual Studio and in the Windows debugger (WinDbg.exe) by providing information about the internal common language runtime (CLR) environment. Alguns comandos Mostrar todas as threads gerenciadas !threads Mostrar a call stack gerenciada !clrstack Mostrar a call stack gerenciada com os method descriptors !dumpstack Mostrar o código IL de um método pelo method descriptor !dumpil <methoddesc> Mostrar informações de um objeto !do <object> https://msdn.microsoft.com/pt-br/library/bb190764(v=vs.110).aspx Chega de PPT hora de conhecer o WinDbg Obrigado!!!