Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Symbolsökvägen anger platser där Windows-felsökare som WinDbg, KD, CDB och NTST letar efter symbolfiler.
Snabbstart:.symfix Använd kommandot för att konfigurera en standardsökväg till Microsofts offentliga symbolserver – detta fungerar bra i de flesta felsökningsscenarier.
Konfigurera symbolsökvägen korrekt för att aktivera effektiv felsökning– felsökare kan sedan automatiskt hitta och läsa in de symbolfiler som behövs för att analysera kodkörningen. Den här guiden visar hur du konfigurerar symbolsökvägar, använder Microsofts symbolserver, cachesymboler lokalt och felsöker vanliga problem. Mer information om symboler och symbolfiler finns i Symboler.
Vissa kompilatorer, inklusive Microsoft Visual Studio, placerar symbolfiler i samma katalog som de binära filerna. Symbolfilerna och de markerade binära filerna innehåller sökvägs- och filnamnsinformation, vilket gör att felsökaren kan hitta symbolfilerna automatiskt. Om du felsöker en process i användarläge på datorn där du skapade den körbara filen, och om symbolfilerna finns på den ursprungliga platsen, kan felsökaren hitta symbolfilerna utan att du ställer in symbolsökvägen.
I de flesta andra situationer måste du ange symbolsökvägen så att den pekar på symbolfilens platser.
Tips
Använd .symfix för att ange en standardsökväg till den offentliga Offentliga Microsoft-symbolservern som fungerar bra i många situationer.
Syntax för symbolsökväg
Felsökningsprogrammets symbolsökväg är en sträng som består av flera katalogsökvägar avgränsade med semikolon. Till exempel C:\Dir1;C:\Dir2\DirA;C:\Dir2\DirB.
Relativa sökvägar stöds. Du bör dock lägga till en enhetsbeteckning eller en nätverksresurs före varje sökväg, såvida du inte alltid startar felsökningsprogrammet från samma katalog. Nätverksdelningar stöds också.
För varje mapp i symbolsökvägen ser felsökningsprogrammet i tre mappar. Om symbolsökvägen till exempel innehåller C:\Dir1 och felsökningsprogrammet letar efter symbolinformation för en DLL söker felsökningsprogrammet i den här ordningen:
C:\Dir1\symbols\dllC:\Dir1\dllC:\Dir1
Felsökningsprogrammet upprepar den här processen för varje katalog i symbolsökvägen.
Slutgiltiga reservplatser:
- Aktuell katalog
- Aktuell katalog med
..\dll,..\exeeller..\systillagd (beroende på vilken binär typ som debuggas)
Symbolfiler har datum- och tidsstämplar. Felsökningsprogrammet letar alltid efter de symboler som matchar tidsstämpeln för de binära filer som den felsöker. Du behöver inte oroa dig för att felsökningsprogrammet ska använda felaktiga symboler som det först hittar i den här sekvensen. Mer information om svar när symbolfiler inte är tillgängliga finns i Matchande symbolnamn.
Ett sätt att ange symbolsökvägen är genom att ange kommandot .sympath. Andra sätt att ange symbolsökvägen finns i Kontrollera symbolsökvägen senare i det här avsnittet.
Kontrollera symbolsökvägen
Om du vill styra symbolsökvägen väljer du någon av följande metoder:
Använd kommandot .symfix set symbol store path för att ange en standardsökväg till den offentliga Microsoft-symbolservern som fungerar bra i många situationer. Om du vill ange en lokal cache skriver du
.symfix C:\MyCache.Använd kommandot .sympath för att visa, ange, ändra eller lägga till i sökvägen.
Innan du startar felsökningsprogrammet använder du miljövariablerna
_NT_SYMBOL_PATHoch_NT_ALT_SYMBOL_PATHför att ange sökvägen. Symbolsökvägen skapas genom att_NT_SYMBOL_PATHläggs till efter_NT_ALT_SYMBOL_PATH. Vanligtvis anger du sökvägen via_NT_SYMBOL_PATH. Men du kanske vill använda_NT_ALT_SYMBOL_PATHför att åsidosätta de här inställningarna i särskilda fall, till exempel om du har privata versioner av delade symbolfiler. Om du försöker lägga till en ogiltig katalog via dessa miljövariabler ignorerar felsökningsprogrammet den här katalogen.När du startar felsökningsprogrammet använder du kommandoradsalternativet -y för att ange sökvägen.
I endast WinDbg, använd Kommandot | Filsökväg för symboler eller tryck
CTRL+Sför att visa, ange, ändra eller lägga till i sökvägen.
Om du använder kommandoradsalternativet -sinsignorerar felsökningsprogrammet miljövariabeln för symbolsökväg.
Cachesymboler lokalt
Vi rekommenderar cachelagringssymboler lokalt för att förbättra felsökningsprogrammets prestanda och minska nätverkstrafiken. Om du vill cachea symboler, inkludera cache*; eller cache*localsymbolcache; i din symbolväg.
Om du inkluderar strängen cache*; i symbolsökvägen lagrar felsökningsprogrammet symboler som den läser in från alla element som visas till höger om strängen i standardkatalogen för symbolcache på den lokala datorn. Följande kommando uppmanar exempelvis felsökaren att hämta symboler från nätverksresursen med namnet \\someshare och cachelagra symbolerna på standardplatsen på den lokala datorn.
.sympath cache*;\\someshare
Om du inkluderar strängen cache*localsymbolcache; i din symbolsökväg lagrar felsökningsprogrammet symboler som den läser in från alla element som visas till höger om strängen i katalogen localsymbolcache .
Till exempel uppmanar följande kommando felsökaren att hämta symboler från nätverksdelningen \\someshare och cachelagra symbolerna i katalogen c:\MySymbols.
.sympath cache*C:\MySymbols;\\someshare
Använda en symbolserver: srv*
Om du är ansluten till Internet eller ett företagsnätverk är det mest effektiva sättet att komma åt symboler att använda en symbolserver som den offentliga Microsofts offentliga symbolserver. Du kan använda en symbolserver genom att använda en av följande strängar i din symbolsökväg.
Strängen
srv*Om du inkluderar strängen
srv*i symbolsökvägen använder felsökningsprogrammet en symbolserver för att hämta symboler från standardsymbollagret. Följande kommando uppmanar till exempel felsökaren att hämta symboler från standardsymbolarkivet. Dessa symboler cachelagras inte på den lokala datorn..sympath srv*Strängen
srv*symbolstoreOm du inkluderar strängen
srv*symbolstorei symbolsökvägen använder felsökningsprogrammet en symbolserver för att hämta symboler från symbolarkivet. Följande kommando uppmanar till exempel felsökaren att hämta symboler från Microsoft-symbolservern store. Dessa symboler cachelagras inte på den lokala datorn..sympath srv*https://msdl.microsoft.com/download/symbolsSträngen
srv*localsymbolcache*symbolstoreOm du inkluderar strängen
srv*localcache*symbolstorei symbolsökvägen använder felsökningsprogrammet en symbolserver för att hämta symboler från symbolarkiv och cachelagrar dem i katalogen localcache. Följande kommando uppmanar till exempel felsökaren att hämta symboler från Microsoft-symbolservern –https://msdl.microsoft.com/download/symbolsoch cachelagrat symbolerna ic:\MyServerSymbols..sympath srv*C:\MyServerSymbols*https://msdl.microsoft.com/download/symbols
Om du har en katalog på datorn där du placerar symboler manuellt ska du inte använda den katalogen som cacheminne för symboler som hämtas från en symbolserver. Använd i stället två separata kataloger. Du kan till exempel manuellt placera symboler i c:\MyRegularSymbols och sedan ange c:\MyServerSymbols som en cache för symboler som hämtas från en server. I följande exempel visas hur du anger båda katalogerna i symbolsökvägen.
.sympath C:\MyRegularSymbols;srv*C:\MyServerSymbols*https://msdl.microsoft.com/download/symbols
Mer information om symbolservrar och symbollager finns i Anpassade symbollager och symbolservrar.
Kombinera cache* och srv*
Om du inkluderar strängen cache*; i symbolsökvägen lagrar felsökningsprogrammet symboler som den läser in från alla element som visas till höger om strängen i standardkatalogen för symbolcache på den lokala datorn. Följande kommando instruerar exempelvis felsökaren att hämta symboler från Microsoft-symbolservern och lagra och cachelagra dem i standardkatalogen för symbolcache.
.sympath cache*;srv*https://msdl.microsoft.com/download/symbols
Om du inkluderar strängen cache*localsymbolcache; i din symbolsökväg lagrar felsökningsprogrammet symboler som den läser in från alla element som visas till höger om strängen i katalogen localsymbolcache .
Följande kommando uppmanar till exempel felsökaren att hämta symboler från Microsoft-symbolservern lagra och cachelagrat symbolerna i katalogen c:\MySymbols.
.sympath cache*C:\MySymbols;srv*https://msdl.microsoft.com/download/symbols
Använd AgeStore för att minska cachestorleken
Du kan använda verktyget AgeStore för att ta bort cachelagrade filer som är äldre än ett angivet datum eller för att ta bort tillräckligt många gamla filer så att den resulterande cachestorleken är mindre än en angiven mängd. Den här rensningen av cachefiler är användbar om ditt nedströmslager blir för stort.
Lazy-symbolinläsning
Felsökaren använder lazy symbol loading som standardinställning. Den här typen av inläsning innebär att felsökaren inte läser in symboler förrän den behöver dem.
När du ändrar symbolsökvägen, till exempel med hjälp av kommandot .sympath, läser felsökningsprogrammet lätt in alla inlästa moduler med exportsymboler.
Felsökningsprogrammet läser lazily in symboler för moduler med fullständiga PDB-symboler om den nya sökvägen inte längre innehåller den ursprungliga sökvägen som användes för att läsa in PDB-symbolerna. Om den nya sökvägen fortfarande innehåller den ursprungliga sökvägen till PDB-symbolfilen läser felsökaren inte in symbolerna på nytt.
Du kan inaktivera lat symbolinläsning i CDB och KD med hjälp av kommandoradsalternativet -s. Du kan också framtvinga symbolinläsning med hjälp av kommandot ld load symbols eller med hjälp av kommandot .reload module tillsammans med alternativet /f.
Artefakter i Azure DevOps Services
En symbolserver är tillgänglig med Azure Artifacts i Azure DevOps Services. Mer information om hur du arbetar med Azure Artifacts i WinDbg finns i Felsöka med symboler i WinDbg (Azure Artifacts). Allmän information om Azure-genererade symboler finns i översikten över symboler (Azure Artifacts).
Felsökning
Använd !sym noisy eller -nWinDbg Command-Line Alternativ för att visa ytterligare information när symboler läses in. Ytterligare felsökningsstrategier finns i Verifiera symboler.
Nästa steg
Nu när du har konfigurerat din symbolsökväg lär du dig att kontrollera att symbolerna läses in korrekt och felsöker vanliga problem:
Relaterade uppgifter:
Kommandoreferens: