web-dev-qa-db-fra.com

Bon tutoriel pour WinDbg?

Existe-t-il de bons tutoriels pour montrer comment utiliser WinDbg ?

34
q0987

Tutoriels de base et démos d'utilisation

Différentes façons de "démarrer"/attacher WinDbg

Espaces de travail (comprendre comment ils fonctionnent)

Cmdtree

Vous permet de définir un "menu" de commandes de débogage pour un accès facile aux commandes fréquemment utilisées sans avoir à mémoriser les noms des commandes laconiques. Vous n'avez pas besoin de mettre toutes les définitions de commandes dans le même fichier texte cmdtree ... vous pouvez les garder séparées et en charger plusieurs (elles obtiennent alors leur propre fenêtre).

Script de démarrage

Vous pouvez utiliser l'option -c sur la ligne de commande pour exécuter automatiquement un script WinDbg lorsque vous démarrez WinDbg.

Donne la possibilité d'activer le mode DML (Debugger Markup Language), de charger des extensions particulières, de définir des points d'arrêt d'exception .NET, de définir des indicateurs de noyau (par exemple, lors du débogage du noyau, vous devrez peut-être modifier le masque DbgPrint pour voir les informations de suivi .... ed nt ! Kd_DEFAULT_Mask 0xFFFFFFFF), charger les cmdtrees, etc.

Un exemple de script:

$$ Include a directory to search for extensions
$$ (point to a source controlled or UNC common directory so that all developers get access)
.extpath+"c:\svn\DevTools\WinDBG\Extensions"
$$ When debugging a driver written with the Windows Driver Framework/KMDF
$$ load this extension that comes from the WinDDK.
!load C:\WinDDK\7600.16385.1\bin\x86\wdfkd.dll
!wdftmffile C:\WinDDK\7600.16385.1\tools\tracing\i386\wdf01009.tmf
$$ load some extensions
.load msec.dll
.load byakugan.dll
.load odbgext.dll
.load sosex
.load psscor4
$$ Make commands that support DML (Debugger Markup Language) use it
.prefer_dml 1
.dml_start
$$ Show NTSTATUS codes in hex by default
.enable_long_status 1
$$ Set default extension
.setdll psscor4
$$ Show all loaded extensions
.chain /D
$$ Load some command trees
.cmdtree c:\svn\DevTools\WinDBG\cmdtree\cmdtree1.txt
.cmdtree c:\svn\DevTools\WinDBG\cmdtree\cmdtree2.txt
$$ Show some help for the extensions
!wdfkd.help
!psscor4.help
.help /D

Feuilles de triche de commande

Extensions (étendre la gamme de commandes/fonctionnalités prises en charge)

Écrivez votre propre extension

Débogage du code managé

Script (C #, PS, Python et WinDbg)

Débogueurs/outils qui utilisent l'API dbgeng.dll/outils WinDbg

Différentes façons de générer des fichiers de vidage sur incident pour l'analyse post-mortem

Outils d'analyse de vidage

  • BlueScreenView - trouve les fichiers minidump .dmp enregistrés par Windows après un BSOD et extrait des informations sur la cause du crash
  • Debug.Analyzer (peut analyser les fichiers de vidage et les plug-ins peuvent être écrits en .NET)
  • SAD - Simple After Dump (analyseur post mortem)
  • Volatilité - framework pour analyser la "mémoire" enregistrée dans les fichiers de vidage ( aide-mémoire )

Outils liés au vidage

  • Citrix dumpcheck - vérifie la cohérence du fichier de vidage (on dirait qu'il a été abandonné link + link )
  • dumpchk (partie des outils de débogage) - vérifie la cohérence d'un fichier de vidage
  • MoonSols Windows Memory Toolkit (anciennement windd ) - convertit divers fichiers de vidage de mémoire brute en fichiers dmp compatibles WinDbg
  • vm2dmp - Microsoft Hyper-V VM State to Memory Dump Converter
  • vmss2core - convertit le fichier d'instantané VMware en un fichier de vidage principal ( téléchargement ), ( instructions )

Débogage des machines virtuelles du noyau

Vidéos

Blogs

Articles avancés et ressources didactiques

Débogueurs alternatifs

Autres liens

133
Colin Smith