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 ptrace
toestaan. 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?
Hier volgen enkele aanvullende bronnen:
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').