.scriptdebug (Débogage JavaScript)
Utilisez la commande .scriptdebug pour déboguer les scripts JavaScript.
.scriptdebug FileName
Paramètres
FileName
Spécifie le nom du script JavaScript du débogueur à déboguer.
Environnement
Les modes |
all |
Targets |
all |
Plateformes |
all |
Informations supplémentaires
Pour un aperçu du débogage JavaScript, veuillez consulter la section JavaScript Debugger Scripting - JavaScript Debugging.
Remarque
Pour utiliser le débogage JavaScript avec WinDbg, exécutez le débogueur en tant qu’administrateur.
Notes
Avant de déboguer un script JavaScript, effectuez les étapes suivantes :
Chargez le script d’exemple.
0:000> .scriptload C:\MyScripts\DebuggableSample.js
Pour commencer à déboguer activement le script, utilisez la commande .scriptdebug.
0:000> .scriptdebug C:\MyScripts\DebuggableSample.js
>>> ****** DEBUGGER ENTRY DebuggableSample ******
No active debug event!
>>> Debug [DebuggableSample <No Position>] >
Une fois que vous voyez l’invite >>> Debug [DebuggableSample <No Position>] >
et une demande d’entrée, vous êtes à l’intérieur du débogueur de script.
Utilisez la commande .help ou ? pour afficher une liste de commandes dans l’environnement de débogage JavaScript.
>>> Debug [DebuggableSample <No Position>] >.help
Script Debugger Commands (*NOTE* IDs are **PER SCRIPT**):
? .................................. Get help
? <expr> .......................... Evaluate expression <expr> and display result
?? <expr> ......................... Evaluate expression <expr> and display result
| ................................. List available scripts
|<scriptid>s ...................... Switch context to the given script
bc \<bpid\> ......................... Clear breakpoint by specified \<bpid\>
bd \<bpid\> ......................... Disable breakpoint by specified \<bpid\>
be \<bpid\> ......................... Enable breakpoint by specified \<bpid\>
bl ................................ List breakpoints
bp <line>:<column> ................ Set breakpoint at the specified line and column
bp <function-name> ................ Set breakpoint at the (global) function specified by the given name
bpc ............................... Set breakpoint at current location
dv ................................ Display local variables of current frame
g ................................. Continue script
gu ............................... Step out
k ................................. Get stack trace
p ................................. Step over
q ................................. Exit script debugger (resume execution)
sx ................................ Display available events/exceptions to break on
sxe <event> ....................... Enable break on <event>
sxd <event> ....................... Disable break on <event>
t ................................. Step in
.attach <scriptId> ................ Attach debugger to the script specified by <scriptId>
.detach [<scriptId>] .............. Detach debugger from the script specified by <scriptId>
.frame <index> .................... Switch to frame number <index>
.f+ ............................... Switch to next stack frame
.f- ............................... Switch to previous stack frame
.help ............................. Get help
Événements
Utilisez la commande de débogueur de script sx pour voir la liste des événements qui peuvent être interceptés.
>>> Debug [DebuggableSample <No Position>] >sx
sx
ab [ inactive] .... Break on script abort
eh [ inactive] .... Break on any thrown exception
en [ inactive] .... Break on entry to the script
uh [ active] .... Break on unhandled exception
Utilisez la commande de débogueur de script sxe pour activer l’un des comportements de pause. Par exemple, pour activer la pause à l’entrée afin que le script se fige dans le débogueur de script dès que du code à l’intérieur s’exécute, utilisez cette commande.
>>> Debug [DebuggableSample <No Position>] >sxe en
sxe en
Event filter 'en' is now active
Utilisez la commande de débogueur de script sxd pour désactiver l’un des comportements de point d’arrêt.
>>> Debug [DebuggableSample 34:5] >sxd en
sxd en
Event filter 'en' is now inactive
Arborescence des appels de procédure
Utilisez la commande k pour afficher une trace de la pile.
>>> Debug [DebuggableSample 34:5] >k
k
## Function Pos Source Snippet
-> [00] throwAndCatch 034:05 (var curProc = host.currentProcess)
[01] outer 066:05 (var foo = throwAndCatch())
[02] outermost 074:05 (var result = outer())
Énumération des variables
Utilisez ?? pour énumérer les valeurs des variables JavaScript.
>>> Debug [DebuggableSample 34:5] >??someObj
??someObj
someObj : {...}
__proto__ : {...}
a : 0x63
b : {...}
Points d’arrêt
Utilisez les commandes de point d’arrêt suivantes pour travailler avec des points d’arrêt supplémentaires.
bpid <>: Définir un point d’arrêt
bd <bpid> : Désactiver le point d’arrêt
be <bpid> : Activer le point d’arrêt
bc <bpid> : Effacer le point d’arrêt
bpc : Définir un point d’arrêt sur la ligne actuelle
bl : Répertorier le ou les points d’arrêt
Contrôle de flux - navigation
Utilisez les commandes suivantes pour avancer dans le script.
p: Passer à l’étape suivante
t : Entrer dans
g : Continuer le script
gu: Sortir
Infrastructures
Utilisez les commandes suivantes pour travailler avec les cadres.
.frame <index>: Passer au cadre numéro <index>
.f+ : Passer au cadre suivant de la pile
.f+ : Passer au cadre précédent de la pile
Quitter
Utilisez la commande .detach pour détacher le débogueur JavaScript.
>>> Debug [DebuggableSample 34:5] >.detach
.detach
Debugger has been detached from script!
Utilisez la commande q pour quitter le débogueur JavaScript.
>>> Debug [<NONE> ] >q
q