– Links úteis:
PSSCOR4 – http://www.microsoft.com/en-us/download/details.aspx?id=21255
PSSCOR2 – http://www.microsoft.com/en-us/download/details.aspx?id=1073
– Variáveis de Ambiente
_NT_SYMBOL_PATH – srv*c:\myappsymbols*http://msdl.microsoft.com/download/symbols
_NT_ALT_SYMBOL_PATH – srv*c:\symbols\Public*http://msdl.microsoft.com/download/symbols
Obs.: É preciso reiniciar o Windows para que a criação das variáveis de ambiente tenha efeito.
– Cenários
Cenário 1: Processo travado.
Comando |
Descrição |
lm |
Lista os módulos carregados pela aplicação. |
Se (contém mscorwks) .load psscor2.dll Senão se (contém clr.dll) .load psscor4.dll |
Carrega o PSSCOR(X).dll em memória. |
~*kb |
Exibe as threads em execução. |
~(X)s |
Exibe os dados dos registrados da thread em execução. (X) Número da thread. |
K |
Exibe a pilha da thread. |
!clrstack |
Exibe o stack CLR da thread. |
Cenário 2: Consumo elevado de memória.
Comando |
Descrição |
lm |
Lista os módulos carregados pela aplicação. |
Se (contém mscorwks) .load psscor2.dll Senão se (contém clr.dll) .load psscor4.dll |
Carrega o PSSCOR(X).dll em memória. |
!address –summary |
Exibe informações resumidas sobre a memória usada pelo processo. |
!dumpheap –stat |
O comando dumpheap exibe todos os objetos na heap. Com o parâmetro –stat esses dados são exibidos de maneira resumida. |
!dumpheap –mt <endereco> |
A opção –mt lista os objetos que correspondem a um endereço específico. |
!gcroot –nostacks <endereco> |
Exibe informações sobre um objeto em um endereço específico. Os objetos em memória são relacionados com a tabela de handles. |
Failed to load data access DLL, 0x80004005 verify that 1) you have a recent build of the debugger (6.2.14 or newer) 2) the file mscordacwks.dll that matches your version of clr.dll is in the version directory or on the symbol path 3) or, if you are debugging a dump file, verify that the file mscordacwks_<arch>_<arch>_<version>.dll is on your symbol path. 4) you are debugging on supported cross platform architecture as the dump file. For example, an ARM dump file must be debugged on an X86 or an ARM machine; an AMD64 dump file must be debugged on an AMD64 machine. You can also run the debugger command .cordll to control the debugger’s load of mscordacwks.dll. .cordll -ve -u -l will do a verbose reload. If that succeeds, the SOS command should work on retry. If you are debugging a minidump, you need to make sure that your executable path is pointing to clr.dll as well. |
Run these commands: |
Referências
http://blogs.msdn.com/b/tess/archive/2005/11/25/496973.aspx
http://msdn.microsoft.com/en-us/library/bb190764(v=vs.110).aspx
http://windbg.info/doc/1-common-cmds.html