Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
DTrace fournit une fonctionnalité permettant de capturer le vidage en direct à partir du script D à l’aide de lkd(). Les fichiers de vidage de mémoire sont utilisés pour déboguer des problèmes complexes dans Windows à l’aide du débogueur Windows. Pour plus d’informations, consultez Analyser les fichiers de vidage mémoire utilisant WinDbg. Pour télécharger le débogueur, consultez Télécharger et installer le débogueur Windows WinDbg.
Le vidage en direct DTrace permet de déclencher le vidage au point exact où l’erreur s’est produite. Par exemple, l’erreur peut être une fonction qui retourne une erreur. Vous pouvez utiliser DTrace pour s'accrocher au retour de cette fonction et déclencher un vidage en direct lorsque la valeur de retour est "erreur".
Remarque
DTrace est pris en charge dans les builds Insider de Windows après la version 18980 et Windows Server Build 18975.
Pour obtenir des informations générales sur l’utilisation de DTrace sur Windows, consultez DTrace.
Utilisation du vidage en direct de DTrace
Utilisation : lkd (paramètre) ;
Les options suivantes peuvent être définies pour modifier les informations incluses dans le mini dump live.
0x0 - Vidage du noyau complet (valeur par défaut)
0x1 - Pages utilisateur + pages noyau (fonctionne uniquement avec l’attachement KD)
0x2 - Minidump
0x4 - pages Hyper-V + pages noyau)
0x5 - Pages utilisateur, noyau et hyperviseur.
Exemple de code de vidage en direct
#pragma D option destructive
inline uint32_t STATUS_UNSUCCESSFUL = 0xc0000001UL;
syscall:::return
{
this->status = (uint32_t)arg0;
if (this->status == STATUS_UNSUCCESSFUL)
{
printf ("Return value arg0:%x \n", this->status);
printf ("Triggering LiveDump \n");
lkd(0);
exit(0);
}
}
Enregistrez le fichier sous la forme de livedumpstatuscheck.d.
Ouvrez une invite de commandes en tant qu’administrateur et exécutez le script à l’aide de l’option -s.
C:\Windows\System32>dtrace -s livedumpstatuscheck.d
dtrace: script 'livedumpstatuscheck.d' matched 1881 probes
dtrace: allowing destructive actions
CPU ID FUNCTION:NAME
0 93 NtAlpcSendWaitReceivePort:return Return value arg0:c0000001
Triggering LiveDump
Le fichier de vidage créé est généralement situé dans C:\Windows\LiveKernelReports.
Si l’emplacement du fichier de vidage a été modifié, la valeur est stockée dans cette clé de Registre : hklm\system\currentcontrolset\control\crashcontrol\livekernelreports
Utilisez WinDbg pour travailler avec un fichier de vidage comme décrit ci-dessus.
Résolution des problèmes
Affichage des événements liés au vidage en direct
Ouvrez l’Observateur d’événements Windows : accédez à : Journaux des applications et des services->Microsoft->Windows->Kernel-Livedump->Operational
Si vous n'avez trouvé aucun journal, activez le canal analytique à partir de l'invite de commandes Windows ou de l'observateur d'événements, comme indiqué ci-dessous.
Activer le canal analytique à partir de l’invite de commandes
Utilisez cette commande pour activer le canal analytique à partir de l’invite de commandes administrateur.
wevtutil sl Microsoft-Windows-Kernel-LiveDump/Analytic /e:true
Activer le canal analytique à l’aide de l’Observateur d’événements
Démarrer l’Observateur d’événements Windows
Cliquez sur Afficher et cochez « Afficher les journaux d’analyse et de débogage ». Cela affichera le canal d'analyse pour le livedump.
Cliquez avec le bouton droit sur et activez Microsoft-Windows-Kernel-LiveDump/Analytics.
Activation de vidages complets en direct
Ces paramètres d'exemple, présentés ci-dessous, indiquent comment fixer à 10 le nombre maximal de vidages en direct complets pouvant être présents simultanément sur le disque. Ils permettent également de stocker les vidages de mémoire complète, et pas seulement un mini-vidage.
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v FullLiveReportsMax /d 10
reg add "HKLM\System\CurrentControlSet\Control\CrashControl" /f /t REG_DWORD /v AlwaysKeepMemoryDump /d 1
Pour plus d’informations sur ces paramètres, consultez Paramètres WER.
Désactiver la limitation
La limitation est une fonctionnalité qui empêche les vidages et le système de journalisation d’avoir un impact sur l’utilisation normale de Windows. Cette fonctionnalité peut interférer avec la création de vidages en direct dans certains environnements contraints par les ressources.
Vérifiez les paramètres de limitation de vidage en direct et, si nécessaire, réessayez en désactivant le contrôle de limitation en définissant les clés SystemThrottleThreshold et ComponentThrottleThreshold sur zéro, comme indiqué ici.
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v SystemThrottleThreshold /d 0
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v ComponentThrottleThreshold /d 0
Problèmes liés à l’espace disque (ID d’événement 202 -Error texte : l’API de données de vidage différées de vidage en direct a pris fin. État NT : 0xC000007F.)
Cela signifie que l’espace disque est insuffisant. Mettez à jour la clé de Registre ci-dessous pour modifier le chemin d'accès pour la création de vidages en direct, dans cet exemple vers le lecteur D : qui dispose d'espace de stockage supplémentaire.
reg add hklm\system\currentcontrolset\control\crashcontrol\livekernelreports /v "LiveKernelReportsPath" /t reg_sz /d "\??\d:\livedumps"
Cette commande définit le chemin racine du vidage en direct sur d:\livedumps (à titre d'exemple).
Ne créez pas manuellement le dossier tel qu’il est géré par le système d’exploitation et sera créé lorsque le vidage est déclenché avec les autorisations appropriées.