9. 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.
10. 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
11. ProcDump
https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
Criar dump quando o processo consumir 40% da CPU por pelo menos 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 pelo menos 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
12. WinDbg
WinDbg is a kernel-mode and user-
mode debugger that is included in
Debugging Tools for Windows.
14. 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
http://windbg.info/doc/1-common-cmds.html
Habilita a DML (Debugger Markup Language)
.prefer_dml 1
15. 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.
16. 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