WinDbg : connaissiez vous la commande .cmdtree ?
Je ne suis qu’un utilisateur assez occasionnel de WinDbg mais il faut que je retienne l’existence de cette commande .cmdtree que je viens de découvrir via les posts de Roberto Farah et John Robbins.
Elle n’est visiblement pas documentée (mais citée dans le changelog des Debugging Tools) mais est plutôt sympathique.
A partir d’un simple fichier (ANSI) définissant des commandes, comme celui donné par Roberto Farah dans son post (celui dans le post de John Robbins est quant à lui orienté SOS) :
windbg ANSI Command Tree 1.0
title {"Common Commands"}
body
{"Common Commands"}
{"Information"}
{"Time of dump"} {".time"}
{"Process being debugged"} {"|"}
{"Dump Location"} {"||"}
{"Create server on port 9999"} {".server tcp:port=9999"}
{"Show remote connections"} {".clients"}
{"Process Environment Block"} {"!peb"}
{"Logging"}
{"Open Log"} {".logopen /t /u /d"}
{"Close Log"} {".logclose"}
{"Modules"}
{"All Modules"} {"lm D sm"}
{"Loaded Modules"} {"lmo D sm"}
{"Loaded Modules (verbose)"} {"lmvo D sm"}
{"Modules w/o symbols"} {"lme D sm"}
{"Stacks"}
{"Set frame length to 2000"} {".kframes 2000"}
{"Dump current stack w/ DML"} {"kpM 1000"}
{"Dump stacks without private info"} {"knL 1000"}
{"Dump stacks with all parameters"} {"kPn 1000"}
{"Dump stacks (distance from last frame)"} {"kf 1000"}
{"Dump stacks with Frame Pointer Omission"} {"kvn 1000"}
{"Dump all stack"} {"~*kbn 1000"}
{"Dump unique stacks"} {"!uniqstack -pn"}
{"Thread environment block"} {"!teb"}
{"Move to next frame"} {".f+"}
{"Move to previous frame"} {".f-"}
{"Memory"}
{"Dump heaps"} {"!heap -a"}
{"Automated Task"}
{"!analyze"} {"!analyze -v"}
{"Locks"} {"!ntsdexts.locks"}
{"CPU time for User and Kernel Mode"} {"!runaway 7"}
{"Managed"}
{"Load sos"} {".loadby sos mscorwks"}
{"clrstack"} {"!clrstack"}
{"Threads"} {"!threads"}
{"Stack Objects"} {"!dso"}
{"Exceptions"} {"!dae"}
Et l’execution de la commande .cmdtree avec comme paramètre le chemin d’accès (complet ou relatif) au fichier en question :
.cmdtree CMDTREE.TXT
Vous obtenez ceci :
Pratique.
Debugging Toolbox : Special Command—Execute Commands from a Customized User Interface with .cmdtree
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :