WinDbg - WinDbg

WinDbg
Desenvolvedor (s) Microsoft
Versão estável
10.0.20153.1000 / 29 de abril de 2020 ( 2020-04-29 )
Sistema operacional Microsoft Windows
Modelo Depurador
Licença Comercial
Local na rede Internet Ferramentas de depuração em docs.microsoft.com


WinDbg é um polivalente depurador para o Microsoft Windows computador sistema operacional , distribuído pela Microsoft. A depuração é o processo de localização e resolução de erros em um sistema ; na computação, também inclui a exploração da operação interna do software como uma ajuda para o desenvolvimento. Ele pode ser usado para depurar aplicativos do modo de usuário , drivers de dispositivo e o próprio sistema operacional no modo kernel .

Visão geral

Como o mais conhecido Visual Studio Debugger, o WinDbg tem uma interface gráfica do usuário (GUI), mas é mais poderoso e tem pouco mais em comum. O WinDbg pode carregar automaticamente arquivos de símbolos de depuração (por exemplo, arquivos PDB ) de um servidor combinando vários critérios (por exemplo, carimbo de data / hora, CRC, versão única ou multiprocessador) via SymSrv (SymSrv.dll), em vez da tarefa mais demorada de criar uma árvore de símbolos para um ambiente de destino de depuração. Se um servidor de símbolo privado for configurado, os símbolos podem ser correlacionados com o código-fonte do binário. Isso alivia a carga de problemas de depuração que têm várias versões de binários instalados no destino de depuração, eliminando a necessidade de localizar e instalar a versão de símbolos específicos no host de depuração. A Microsoft possui um servidor de símbolo público que possui a maioria dos símbolos públicos para o Windows 2000 e versões posteriores do Windows (incluindo service packs ).

O WinDbg também pode ser usado para depurar despejos de memória no modo kernel , criados após o que é comumente chamado de Tela Azul da Morte, que ocorre quando uma verificação de bug é emitida. Ele também pode ser usado para depurar despejos de memória no modo de usuário. Isso é conhecido como depuração post-mortem .

Versões recentes do WinDbg foram e estão sendo distribuídas como parte do pacote gratuito Debugging Tools for Windows , que compartilha um back-end de depuração comum entre WinDbg e front-ends de depurador de linha de comando como KD , CDB e NTSD . A maioria dos comandos pode ser usada como está com todos os front-ends de depurador incluídos.


Em 2017, a Microsoft anunciou uma nova versão do WinDbg chamada WinDbg Preview (também conhecida como WinDbgX). Um dos recursos mais notáveis ​​do WinDbg Preview é o chamado Time-Travel-Debugging (TTD). A ideia principal aqui é que você pode gravar um processo real ao vivo (com uma penalidade de desempenho) para depurar posteriormente, indo e voltando no tempo. Esse recurso é especialmente útil durante o processo de engenharia reversa. Também permite escrever scripts em linguagem JavaScript.

Extensões

O WinDbg permite o carregamento de DLLs de extensão que podem aumentar os comandos com suporte do depurador e permitir a ajuda na depuração de cenários específicos: por exemplo, exibindo um documento MSXML dado um IXMLDOMDocument ou depurando o Common Language Runtime (CLR) . Essas extensões são uma grande parte do que torna o WinDbg um depurador tão poderoso. O WinDbg é usado pela equipe de produto do Microsoft Windows para criar o Windows e tudo o que é necessário para depurar o Windows está incluído nessas DLLs de extensão.

Os comandos de extensão são sempre prefixados com ! .

Embora algumas extensões sejam usadas apenas dentro da Microsoft, a maioria delas faz parte do pacote público de Ferramentas de Depuração para Windows.

O modelo de extensão está documentado no arquivo de ajuda incluído nas Ferramentas de Depuração para Windows.

Ext.dll

Ext é uma extensão padrão do Windows Debugger que vem com o WinDBG e é carregada por padrão.

! comando analyse

O comando mais comumente usado é ! Analyse -v , que analisa o estado atual do programa que está sendo depurado e o estado da máquina / processo no momento do travamento ou travamento. Este comando geralmente é capaz de depurar o problema atual de uma maneira totalmente automatizada.

Quando usado sem qualquer opção ,! Analise simplesmente retorna os resultados de sua análise. O -v e -vv fornecem mais detalhes sobre essa análise.

Wow6432exts.dll

Wow6432exts é uma extensão padrão do Windows Debugger que acompanha o WinDBG. É usado para depurar processos em execução no WoW64 (processos de 32 bits em execução no Windows de 64 bits).

SOS.dll

O SOS (Son of Strike) Debugging Extension (SOS.dll) auxilia na depuração de programas gerenciados no Visual Studio e WinDbg, fornecendo informações sobre o ambiente interno common language runtime (CLR). Esta ferramenta requer que um projeto tenha a depuração não gerenciada habilitada. SOS.dll é instalado automaticamente com o .NET Framework. Para usar SOS.dll no Visual Studio, instale o Windows Driver Kit (WDK). Para depurar um processo ou despejo de memória, a versão sos.dll deve corresponder à versão do .NET Framework. Psscor2 e Psscor4 são um superconjunto do SOS.

Psscor2.dll

Psscor2 é a extensão do depurador do Windows usada para depurar aplicativos .NET Framework que usam o .NET CLR versão 2.0 (.NET Framework versões 2 a 3.5). Psscor2 foi desenvolvido para uso interno na Microsoft como parte de suas ferramentas de Serviços de Suporte ao Produto. Embora a Microsoft só tenha lançado o Psscor2 em 2010, a Microsoft vinha publicando comandos da extensão vários anos antes, causando dificuldade para aqueles que estavam tentando seguir seus processos.

Psscor4.dll

Psscor4 é uma extensão do Windows Debugger usada para depurar aplicativos .NET Framework 4.

Acoplamento com máquinas virtuais

O WinDbg permite depurar um kernel do Microsoft Windows em execução em uma máquina virtual por VMware , VPC ou Parallels usando um pipe nomeado . Isso pode ser feito usando uma porta COM virtual . No caso de VMware e VirtualBox , a extensão VirtualKD adiciona suporte nativo para depuração de VM ao kernel do Windows, alegando acelerar a depuração por um fator de até 45. Para Windows 8 e posterior, a depuração de kernel pela rede é permitida, permitindo um kernel rápido depuração sem configuração especial.

Protocolo

O protocolo WinDbg não está documentado, mas é compatível com os desmontadores IDA Pro e radare2 .

Veja também

Referências

links externos