WinDbg - WinDbg
| Desenvolvedor (s) | Microsoft |
|---|---|
| Versão estável | 10.0.20153.1000 / 29 de abril de 2020
|
| 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
- Primeiros passos: instruções de instalação , parte 1 , parte 2
- Ferramentas de depuração para Windows - informações e downloads gratuitos
- WinDbg. De a até o z! - Teoria e exemplos, 111 slides
- Comandos WinDbg comuns (agrupados por tema)
- Tutorial sobre como resolver falhas do sistema usando WinDbg
- Símbolos carregando no WinDbg
- Depuradores do Windows: Parte 1: Um tutorial do WinDbg
- Extensão KD para depuração rápida de VMware e VirtualBox
- Extensão de depuração SOS (SOS.dll)
- psscor4 (.NET 4.0) ou psscor2 (.NET 2.0-3.5) Substituição do SOS por um superconjunto de comandos
- [1] WinDBG v6.12.2.633 disponível através do Windows Driver Kit versão 7.1.0
- Extensão para script python (pykd)
- DbgKit: a primeira extensão GUI para ferramentas de depuração para Windows