Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln gäller för: ✔️ .NET Core 3.0 SDK och senare versioner
Samla dumpar på Linux
Tips/Råd
Vanliga frågor och svar om soptippsinsamling, analys och andra varningar finns i Dumpar: Vanliga frågor och svar.
De två rekommenderade sätten att samla in dumpar på Linux är:
-
dotnet-dumpCLI-verktyg - Miljövariabler för insamling av dumpar vid krascher
Analysera dumpar på Linux
När en dump har samlats in kan den analyseras med verktyget dotnet-dump med kommandot dotnet-dump analyze. Det här analyssteget måste köras på en dator som har samma arkitektur och Linux-distribution som miljön som dumpen registrerades i.
Verktyget dotnet-dump stöder visning av information om .NET-kod, men är inte användbart för att förstå kodproblem för andra språk som C och C++.
Alternativt kan LLDB användas för att analysera dumpar i Linux, vilket möjliggör analys av både hanterad och intern kod. LLDB använder SOS-tillägget för att felsöka hanterad kod.
dotnet-sos CLI-verktyget kan användas för att installera SOS, som har många användbara kommandon för felsökning av hanterad kod. För att kunna analysera .NET Core-dumpar kräver LLDB och SOS följande .NET Core-binärfiler från miljön som dumpen skapades i:
- libmscordaccore.so
- libcoreclr.so
- dotnet (värden som används för att starta appen)
I de flesta fall kan dessa binärfiler laddas ned med hjälp av dotnet-symbol verktyget. Om de nödvändiga binärfilerna inte kan laddas ned med dotnet-symbol (till exempel om en privat version av .NET Core som skapats från källan användes) kan det vara nödvändigt att kopiera filerna som anges ovan från miljön som dumpen skapades i. Om filerna inte finns bredvid dumpfilen kan du använda KOMMANDOT setclrpath <path> LLDB/SOS för att ange sökvägen som de ska läsas in från och setsymbolserver -directory <path> ange sökvägen för att söka efter symbolfiler.
När de nödvändiga filerna är tillgängliga kan dumpen läsas in i LLDB genom att ange dotnethosten som körbar för felsökning.
lldb --core <dump-file> <host-program>
I föregående kommando <dump-file> är sökvägen till dumpen som ska analyseras och <host-program> är det interna programmet som startade .NET Core-programmet. Detta är vanligtvis binärfilen dotnet om inte appen är fristående, i vilket fall det är namnet på programmet utan .dll-tillägget .
När LLDB startar kan det vara nödvändigt att använda setsymbolserver kommandot för att peka på rätt symbolplats (setsymbolserver -ms för att använda Microsofts symbolserver eller setsymbolserver -directory <path> för att ange en lokal sökväg). Kör loadsymbols för att läsa in inbyggda symboler. Nu kan du använda SOS-kommandon för att analysera dumpen.
Anmärkning
LLDB kan installeras med kommandot sudo apt-get install lldb
Analysera minnesdumpar på Windows
Dumpar som samlas in från en Linux-dator kan också analyseras på en Windows-dator med hjälp av Visual Studio, Windbg eller verktyget dotnet-dump . Både Visual Studio och Windbg kan analysera intern och hanterad kod, medan dotnet-dump endast analyserar hanterad kod.
Anmärkning
Med Visual Studio version 16.8 och senare kan du öppna och analysera Linux-dumpar som genererats på .NET Core 3.1.7 eller senare.
- Visual Studio – Se felsökningsguiden för Visual Studio-dumpar.
- Windbg – Du kan felsöka Linux-dumpar på windbg med samma instruktioner som du skulle använda för att felsöka en windows-dump i användarläge. Använd x64-versionen av windbg för dumpar som samlats in från en Linux x64- eller Arm64-miljö och x86-versionen för dumpar som samlats in från en Linux x86-miljö.
- dotnet-dump – Visa dumpen med hjälp av kommandot dotnet-dump analyze . Använd x64-versionen av dotnet-dump för dumpar som samlats in från en Linux x64- eller Arm64-miljö och x86-versionen för dumpar som samlats in från en Linux x86-miljö.
Se även
- dotnet-sos för mer information om hur du installerar SOS-tillägget.
- dotnet-symbol för mer information om hur du installerar och använder verktyget för symbolnedladdning.
- .NET Core-lagringsplats för diagnostik för mer information om felsökning, inklusive användbara vanliga frågor och svar.
- Installera LLDB för instruktioner om hur du installerar LLDB på Linux eller Mac.
- Öva och felsöka i Linux för självstudie om felsökning av kraschdumpar i Linux