Modifier

Partager via


FAQ sur les vidages

Cet article répond aux questions fréquemment posées sur la collecte de vidages dans .NET.

Pourquoi puis-je uniquement obtenir des vidages sur Linux si [dotnet-dump](dotnet-dump.md) ou mon [processus bloqué](dumps.md#collect-dumps-on-crash) est en cours d’exécution avec élévation de privilèges ?

Sur les systèmes Linux, /proc/sys/kernel/ptrace_scope contrôle qui peut appeler ptrace et quels processus ils peuvent suivre. Nous vous recommandons de définir ce paramètre sur 1, ce qui signifie que seuls les processus de la même chaîne d’héritage peuvent utiliser le suivi. Toute valeur supérieure à celle-ci nécessite une élévation ou peut désactiver ptrace complètement.

Pourquoi ne puis-je pas collecter de vidages lors de l’exécution à l’intérieur d’un conteneur ?

Pour les applications s’exécutant sous n’importe quelle technologie Open Container Initiative, le profil seccomp doit autoriser les appels à ptrace. Par exemple, Docker utilise containerd sous le capot comme runtime de conteneur. Lors de l’initialisation du runtime, il spécifie un profil seccomp par défaut qui autorise ptrace uniquement si l’hôte du conteneur a une version du noyau supérieure à 4.8 ou si la fonctionnalité CAP_SYS_PTRACE a été spécifiée.

Pourquoi ne puis-je pas collecter de vidages sur macOS ?

Sur macOS, l’utilisation de ptrace nécessite que l’hôte du processus cible soit correctement autorisé. Pour plus d’informations sur les droits minimaux requis, consultez Droits par défaut.

Où puis-je en apprendre plus sur la façon dont je peux tirer parti des vidages pour aider à diagnostiquer les problèmes dans mon application .NET ?

Comment résoudre l’erreur « Il n’a pas été possible de localiser une version compatible du framework »

Sur Linux, la variable d’environnement DOTNET_ROOT doit pointer vers le dossier correct lors de la définition. Lorsqu’elle pointe vers une autre version de .NET, dotnet-dump génère toujours cette erreur. Lorsque la variable d’environnement DOTNET_ROOT n’est pas définie, une autre erreur est générée (« Vous devez installer .NET pour exécuter cette application »).