Depuração avançada para Windows: o sistema em produção parou

Propaganda
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!!!
Download