MEX Debugging Extension for WinDbg

Pessoal, para quem gosta de analisar DUMPs, segue a dica:

A versão oficial da extensão MEX publica foi lançada e está disponível para download através do link a seguir.

https://www.microsoft.com/en-us/download/details.aspx?id=53304

Essa extensão é muito usada pelos engenheiros de suporte da Microsoft no processo de troubleshooting de aplicações.

Após realizado o download da MEX, basta extrair a DLL para o subdiretório winext do WinDbg.

O  WinDbg é um User mode e Kernel mode debugger com uma interface gráfica que usa a infraestrutura dos debuggers NTSD, CDB e KD para prover um ambiente mais parecido com o Visual Studio, com janelas de watch, breakpoints visuais em linhas de código e outras facilidades, por exemplo, exibir variáveis (incluindo objetos C++), stack traces e memória.

Exemplos de alguns comandos da extensão MEX:

.load mex

Esse comando é utilizado para carregar a extensão MEX no WinDbg para que possamos acessar os comandos.

 !mex.help

Esse comando exibe o help da extensão MEX agrupado por categoria.

mex1

!clrstack2

Esse comando é utilizado para exibir a pilha de execução (callstack) gerenciada da thread atual.

clrstack2

!dae

 Esse comando é a abreviação de DumpAllExceptions. Ele lista todas as exceções que estavam em memória no momento em que o DUMP foi coletado.

dae

!us

Esse comando é a abreviação de UniqueStacks, responsável por listar todas as trheads agrupadas por callstack.

us

!mex.writemodule -a -p "destination path"

Esse comando é utilizado para extrair todos os binários utilizados pela aplicação.

writemodule

!do2 "address"

Abreviação de DumpObject, esse comando exibe os detalhes de um objeto.

!sqlcn

Mostra as conexões (connection pools) com o banco de dados.