Bewerken

Share via


Veelgestelde vragen over dumps

In dit artikel vindt u antwoorden op veelgestelde vragen over het verzamelen van dumps in .NET.

Waarom krijg ik alleen dumps op Linux als [dotnet-dump](dotnet-dump.md) of mijn [crashing process](dumps.md#collect-dumps-on-crash) wordt uitgevoerd?

Op Linux-systemen /proc/sys/kernel/ptrace_scope bepaalt u wie kan aanroepen ptrace en welke processen ze kunnen traceren. U wordt aangeraden deze in te 1 stellen. Dit betekent dat alleen processen in dezelfde procesketen tracering kunnen gebruiken. Elke waarde hoger dan deze vereist uitbreiding of kan helemaal worden uitgeschakeld ptrace .

Waarom kan ik geen dumps verzamelen bij het uitvoeren in een container?

Voor toepassingen die worden uitgevoerd onder een Open Container Initiative-technologie, moet het seccomp profiel oproepen naar ptracetoestaan. Maakt bijvoorbeeld Docker gebruik van containers onder de motorkap als een containerruntime. Bij het initialiseren van de runtime wordt een standaard seccomp-profiel opgegeven dat alleen toestaat ptrace als de containerhost een kernelversie heeft die hoger is dan 4.8 of als de CAP_SYS_PTRACE mogelijkheid is opgegeven.

Waarom kan ik geen dumps verzamelen in macOS?

Voor macOS is vereist ptrace dat de host van het doelproces juist recht heeft. Zie Standaardrechten voor meer informatie over de minimaal vereiste rechten.

Waar vind ik meer informatie over hoe ik dumps kan gebruiken om problemen in mijn .NET-toepassing vast te stellen?

Hoe kan ik oplossen: 'Het was niet mogelijk om een compatibele frameworkversie te vinden'

In Linux moet de DOTNET_ROOT omgevingsvariabele verwijzen naar de juiste map wanneer deze is ingesteld. Wanneer deze verwijst naar een andere .NET-versie, dotnet-dump wordt deze fout altijd gegenereerd. Wanneer de DOTNET_ROOT omgevingsvariabele niet is ingesteld, wordt er een andere fout gegenereerd ('U moet .NET installeren om deze toepassing uit te voeren').