Dela via


Koppla till processer som körs med Visual Studio-felsökningsprogrammet

Du kan koppla Visual Studio-felsökningsprogrammet till en process som körs på en lokal eller fjärransluten dator. När processen har körts väljer du Felsöka>Bifoga till process eller trycker på Ctrl+Alt+p i Visual Studio och använder dialogrutan Bifoga till process för att koppla felsökningsprogrammet till processen.

Du kan använda Bifoga till process för att felsöka appar som körs på lokala datorer eller fjärrdatorer, felsöka flera processer samtidigt, felsöka appar som inte har skapats i Visual Studio eller felsöka appar som du inte startade från Visual Studio med felsökningsprogrammet kopplat. Om du till exempel kör en app utan felsökningsprogrammet och stöter på ett undantag kan du koppla felsökningsprogrammet till processen som kör appen och börja felsöka.

Tips/Råd

Är du osäker på om du vill använda Bifoga till process för felsökningsscenariot? Se Vanliga felsökningsscenarier.

Ansluta till en process som körs på den lokala datorn

Om du snabbt vill ansluta till en process som du kopplade till tidigare läser du Koppla om till en process.

Från och med Visual Studio 2022 version 17.10 Förhandsversion 2 har dialogrutan Koppla till process ändrats. Om du behöver instruktioner som matchar den äldre dialogrutan växlar du till Visual Studio 2019-vyn (övre vänstra versionsväljaren i artikeln).

Så här ansluter du till en process på den lokala datorn:

  1. I Visual Studio väljer du Felsöka>Bifoga till process (eller tryck på Ctrl+Alt+P) för att öppna dialogrutan Anslut till process .

  2. Ange Anslutningstyp till Lokal.

    I de flesta lokala felsökningsscenarier kan du använda Lokalt. Vissa scenarier kan kräva en annan anslutningstyp. Mer information finns i andra avsnitt i den här artikeln eller Vanliga felsökningsscenarier.

    Skärmbild av dialogrutan Bifoga till process med anslutningsmålet inställt på namnet på den lokala datorn.

  3. I listan Tillgängliga processer letar du upp och väljer den process eller de processer som du vill koppla till.

    • Om du snabbt vill välja en process skriver du dess namn eller första bokstav i rutan Filterprocesser .
    • Om du inte känner till processnamnet bläddrar du igenom listan eller läser Vanliga felsökningsscenarier för några vanliga processnamn.
    • Använd knappen Spåra fönster för att aktivera valet av ett fönster på datorn, vilket anger processen.

    Tips/Råd

    Processer kan starta och stoppa i bakgrunden medan dialogrutan Koppla till process är öppen, så listan över processer som körs kanske inte alltid är aktuell. Du kan välja Uppdatera när som helst för att se den aktuella listan.

  4. I fältet Kodtyp kontrollerar du att den typ av kod som du planerar att felsöka visas.

    Standardinställningen Automatisk fungerar för de flesta apptyper, men du kan välja en specifik kodtyp för att manuellt ange felsökningstypen.

  5. Välj Bifoga.

Tips/Råd

I scenariot där du har flera identiska processer använder du kolumnen Kommandorad eller processinformationen w3wp från kolumnen Rubrik för att identifiera rätt process.

  1. I Visual Studio väljer du Felsöka>Bifoga till process (eller tryck på Ctrl+Alt+P) för att öppna dialogrutan Anslut till process .

  2. Kontrollera anslutningstypen.

    I de flesta scenarier kan du använda Standard. Vissa scenarier kan kräva en annan anslutningstyp. Mer information finns i andra avsnitt i den här artikeln eller Vanliga felsökningsscenarier.

  3. Ange anslutningsmålet till namnet på den lokala datorn.

    Skärmbild av dialogrutan Bifoga till process med anslutningsmålet inställt på namnet på den lokala datorn.

  4. I listan Tillgängliga processer letar du upp och väljer den process eller de processer som du vill koppla till.

    • Om du snabbt vill välja en process skriver du dess namn eller första bokstav i rutan Filterprocesser .

    • Om du inte känner till processnamnet bläddrar du igenom listan eller läser Vanliga felsökningsscenarier för några vanliga processnamn.

    Tips/Råd

    Processer kan starta och stoppa i bakgrunden medan dialogrutan Koppla till process är öppen, så listan över processer som körs kanske inte alltid är aktuell. Du kan välja Uppdatera när som helst för att se den aktuella listan.

  5. I fältet Bifoga till kontrollerar du att den typ av kod som du planerar att felsöka visas. Standardinställningen Automatisk fungerar för de flesta apptyper.

    Om du använder standardanslutningstypen kan du manuellt välja den typ av kod som du vill koppla till. Annars kan alternativet Välj inaktiveras.

    Så här väljer du kodtyper manuellt:

    1. Klicka på Välj.
    2. I dialogrutan Välj kodtyp väljer du Felsöka dessa kodtyper. Om du får ett fel när du försöker ansluta till en process i listan kan du använda dialogrutan Välj kodtyp för att felsöka problemet.
    3. Välj de kodtyper som du vill felsöka.
    4. Välj OK.
  6. Välj Bifoga.

Anmärkning

Du kan kopplas till flera appar för felsökning, men endast en app är aktiv i felsökningsprogrammet i taget. Du kan ange den aktiva appen i verktygsfältet För felsökningsplats i Visual Studio eller i fönstret Processer .

Ansluta till en process på en fjärrdator

Du kan också välja en fjärrdator i dialogrutan Anslut till process , visa en lista över tillgängliga processer som körs på datorn och ansluta till en eller flera av processerna för felsökning. Fjärrfelsökaren (msvsmon.exe) måste köras på fjärrdatorn. Mer information finns i Fjärrfelsökning.

Från och med Visual Studio 2022 version 17.10 Förhandsversion 2 har dialogrutan Koppla till process ändrats. Om du behöver instruktioner som matchar den äldre dialogrutan växlar du till Visual Studio 2019-vyn (övre vänstra versionsväljaren i artikeln).

Så här ansluter du till en process som körs på en fjärrdator:

  1. I Visual Studio väljer du Felsöka>Bifoga till process (eller tryck på Ctrl+Alt+P) för att öppna dialogrutan Anslut till process .

  2. Ange anslutningstypen till en fjärranslutningstyp, till exempel Fjärr (Windows).

    I de flesta scenarier för fjärrfelsökning i Windows kan du använda Fjärr (Windows). Vissa scenarier, till exempel felsökning av Linux eller en containerbaserad app, kräver en annan anslutningstyp. Mer information finns i andra avsnitt i den här artikeln eller Vanliga felsökningsscenarier.

    Alternativet Anslutningspunkt visas.

  3. I rutan Anslutningsmål väljer du fjärrdatorn med någon av följande metoder:

    • Välj listrutepilen bredvid Anslutningsmål och välj datornamnet i listrutan.
    • Skriv datornamnet i rutan Anslutningsmål och tryck på Retur.
    • Välj knappen Sök bredvid rutan Anslutningsmål för att öppna dialogrutan Fjärranslutningar . I dialogrutan Fjärranslutningar visas alla enheter som finns i ditt lokala undernät eller som är direkt anslutna till datorn. Du kan behöva öppna utgående UDP-port 3702 på servern för att identifiera fjärrenheter. Välj den dator eller enhet du vill använda och stäng sedan dialogrutan.

    Kontrollera att Visual Studio lägger till den port som krävs i datornamnet, som visas i formatet: <fjärrdatornamn>:port

    Anmärkning

    Om du inte kan ansluta med namnet på fjärrdatorn kan du prova att använda IP- och portadressen (till exempel 123.45.678.9:4026). 4026 är standardporten för visual studio 2022-fjärrfelsökaren. Andra porttilldelningar för fjärrfelsökare finns i Porttilldelningar för fjärrfelsökare.

    Inställningen Anslutningstyp bevaras mellan felsökningssessioner. Inställningen Anslutningsmål kvarstår endast mellan felsökningssessioner om en lyckad felsökningsanslutning har inträffat med det målet.

  4. Klicka på Uppdatera för att fylla i listan Tillgängliga processer .

    Tips/Råd

    Processer kan starta och stoppa i bakgrunden medan dialogrutan Koppla till process är öppen, så listan över processer som körs kanske inte alltid är aktuell. Du kan välja Uppdatera när som helst för att se den aktuella listan.

  5. I listan Tillgängliga processer letar du upp och väljer den process eller de processer som du vill koppla till.

  6. I fältet Kodtyp kontrollerar du att den typ av kod som du planerar att felsöka visas.

    Standardinställningen Automatisk fungerar för de flesta apptyper, men du kan välja en specifik kodtyp för att manuellt ange felsökningstypen.

  7. Välj Bifoga.

  1. I Visual Studio väljer du Felsöka>Bifoga till process (eller tryck på Ctrl+Alt+P) för att öppna dialogrutan Anslut till process .

  2. Kontrollera anslutningstypen.

    I de flesta scenarier kan du använda Standard. Vissa scenarier, till exempel felsökning av Linux eller en containerbaserad app, kräver en annan anslutningstyp. Mer information finns i andra avsnitt i den här artikeln eller Vanliga felsökningsscenarier.

  3. I rutan Anslutningsmål väljer du fjärrdatorn med någon av följande metoder:

    • Välj listrutepilen bredvid Anslutningsmål och välj datornamnet i listrutan.
    • Skriv datornamnet i rutan Anslutningsmål och tryck på Retur.
    • Välj knappen Sök bredvid rutan Anslutningsmål för att öppna dialogrutan Fjärranslutningar . I dialogrutan Fjärranslutningar visas alla enheter som finns i ditt lokala undernät eller som är direkt anslutna till datorn. Du kan behöva öppna utgående UDP-port 3702 på servern för att identifiera fjärrenheter. Välj den dator eller enhet du vill använda och välj sedan Välj.

    Kontrollera att Visual Studio lägger till den port som krävs i datornamnet, som visas i formatet: <fjärrdatornamn>:port

    Anmärkning

    Om du inte kan ansluta med namnet på fjärrdatorn kan du prova att använda IP- och portadressen (till exempel 123.45.678.9:4022). 4024 är standardporten för fjärrfelsökaren i Visual Studio 2019. Andra porttilldelningar för fjärrfelsökare finns i Porttilldelningar för fjärrfelsökare.

    Inställningen Anslutningstyp bevaras mellan felsökningssessioner. Inställningen Anslutningsmål kvarstår endast mellan felsökningssessioner om en lyckad felsökningsanslutning har inträffat med det målet.

  4. Klicka på Uppdatera för att fylla i listan Tillgängliga processer .

    Tips/Råd

    Processer kan starta och stoppa i bakgrunden medan dialogrutan Koppla till process är öppen, så listan över processer som körs kanske inte alltid är aktuell. Du kan välja Uppdatera när som helst för att se den aktuella listan.

  5. I listan Tillgängliga processer letar du upp och väljer den process eller de processer som du vill koppla till.

  6. I fältet Bifoga till kontrollerar du att den typ av kod som du planerar att felsöka visas. Standardinställningen Automatisk fungerar för de flesta apptyper.

    Om du använder standardanslutningstypen kan du manuellt välja den typ av kod som du vill koppla till. Annars kan alternativet Välj inaktiveras.

    Så här väljer du kodtyper manuellt:

    1. Klicka på Välj.
    2. I dialogrutan Välj kodtyp väljer du Felsöka dessa kodtyper. Om du får ett fel när du försöker ansluta till en process i listan kan du använda dialogrutan Välj kodtyp för att felsöka problemet.
    3. Välj OK.
  7. Välj Bifoga.

Anmärkning

Du kan kopplas till flera appar för felsökning, men endast en app är aktiv i felsökningsprogrammet i taget. Du kan ange den aktiva appen i verktygsfältet För felsökningsplats i Visual Studio eller i fönstret Processer .

I vissa fall visas inte alla tillgängliga processer i listan Tillgängliga processer när du felsöker i en session med fjärrskrivbord (Terminal Services). Om du kör Visual Studio som en användare som har ett begränsat användarkonto visas inte processer som körs i session 0 i listan Tillgängliga processer . Session 0 används för tjänster och andra serverprocesser, inklusive w3wp.exe. Du kan lösa problemet genom att köra Visual Studio under ett administratörskonto eller genom att köra Visual Studio från serverkonsolen i stället för en fjärrskrivbordssession.

Om ingen av dessa lösningar är möjliga är ett tredje alternativ att ansluta till processen genom att köra vsjitdebugger.exe -p <ProcessId> från Windows-kommandoraden. Du kan fastställa process-ID:t med hjälp avtlist.exe. Hämta tlist.exegenom att ladda ned och installera felsökningsverktyg för Windows, som finns i nedladdningar av WDK och WinDbg.

Koppla till en .NET Core-process som körs i Azure App Service (Windows)

Om du publicerar till Azure App Service (Windows) kan du läsa mer i Fjärrfelsöka ASP.NET Core i Azure eller Felsöka Azure App Service .

Koppla till en .NET Core-process som körs i Azure App Service (Windows)

Om du publicerar till Azure App Service (Windows) hittar du alternativet Anslut till felsökare i ...-menyn under Värd i publiceringsprofilen. Visual Studio försöker ansluta fjärrfelsökaren till instansen av Azure App Service (Windows) som profilen publicerar till.

Skärmbild av alternativet Bifoga felsökningsprogram från sidan Publicera sammanfattning.

Ansluta till en .NET Core-process som körs på Linux med hjälp av SSH

Mer information finns i Fjärrfelsöka .NET Core som körs på Linux med hjälp av SSH.

Koppla till en process som körs på en Docker-container

Från och med Visual Studio 2019 kan du koppla Visual Studio-felsökningsprogrammet till en process som körs på en Docker-container. För en Linux .NET Core Docker-container, se Koppla till en process som körs på en Linux Docker-container. För en Windows Docker-behållare, se Koppla till en process som körs på en Windows Docker-behållare.

Återanknyta till en process

Du kan snabbt återansluta till processer som du tidigare var kopplad till genom att välja Felsöka>Återkoppling till process (Skift+Alt+P). När du väljer det här kommandot försöker felsökaren omedelbart ansluta till de sista processerna som du kopplade till genom att först försöka matcha föregående process-ID och om det misslyckas genom att matcha med det tidigare processnamnet. Om inga matchningar hittas, eller om flera processer har samma namn, öppnas dialogrutan Koppla till process så att du kan välja rätt process.

Anmärkning

Kommandot Reattach to Process är tillgängligt från och med Visual Studio 2017.

Vanliga felsökningsscenarier

För att hjälpa dig att avgöra om du vill använda Bifoga till process och vilken process som ska kopplas till, visar följande tabell några vanliga felsökningsscenarier, med länkar till fler instruktioner där det är tillgängligt. (Listan är inte fullständig.)

Om du snabbt vill välja en process som körs att ansluta till skriver du Ctrl+Alt+P i Visual Studio och skriver sedan den första bokstaven i processnamnet.

För att felsökaren ska ansluta till kod som skrivits i C++, måste koden generera DebuggableAttribute. Du kan lägga till detta i koden automatiskt genom att länka med alternativet /ASSEMBLYDEBUG-länkare .

För felsökning av skript på klientsidan måste skriptfelsökning aktiveras i webbläsaren. Om du vill felsöka skript på klientsidan i Chrome väljer du JavaScript eller TypeScript som kodtyp. Beroende på apptyp kan du behöva stänga alla Chrome-instanser och starta webbläsaren i felsökningsläge (skriv chrome.exe --remote-debugging-port=9222 från en kommandorad).

För felsökning av skript på klientsidan måste skriptfelsökning aktiveras i webbläsaren. Om du vill felsöka skript på klientsidan i Chrome väljer du JavaScript (Chrome) eller JavaScript (Microsoft Edge – Chromium) som kodtyp, och beroende på din apptyp kan du behöva stänga alla Chrome-instanser och starta webbläsaren i felsökningsläge (skriv chrome.exe --remote-debugging-port=9222 från en kommandorad). I tidigare versioner av Visual Studio var skriptfelsökaren för Chrome webbpaket.

Scenario Felsökningsmetod Processnamn Anteckningar och länkar
ASP.NET Core – Fjärrfelsökning på IIS-servern (Internet Information Services) Använd fjärrverktyg och Koppla till process w3wp.exe eller dotnet.exe Från och med .NET Core 3 används processen w3wp.exe för standardmodellen för värd i app. Information om appdistribution finns i Publicera till IIS. Mer detaljerad information finns i Fjärrfelsökning ASP.NET Core på en fjärransluten IIS-dator
ASP.NET Core – Felsöka på den lokala datorn när du har startat appen utan felsökningsprogrammet Använd Bifoga till process appname.exe eller iisexpress.exe Detta kan vara användbart för att få din app att laddas snabbare, till exempel vid profilering. Standardprocessen för lokal server (kestrel) för ASP.NET Core är appname.exe.
ASP.NET 4 eller 4.5 – Fjärrfelsökning på en IIS-server Använd fjärrverktyg och Koppla till process w3wp.exe Se Fjärrfelsökning ASP.NET på en fjärransluten IIS-dator
Skript på klientsidan – Felsöka på en lokal IIS-server för apptyper som stöds Använd Bifoga till process chrome.exe eller msedge.exe Felsökning av skript måste vara aktiverat. För Chrome måste du också köra Chrome i felsökningsläge (skriv chrome.exe --remote-debugging-port=9222 från en kommandorad) och välja JavaScript eller TypeScript i fältet Koppla till .
C#, Visual Basic eller C++-app – Felsöka på den lokala datorn Använd antingen standardfelsökning (F5) eller Koppla till process {appname}.exe I de flesta scenarier använder du standarddebuggning och inte Koppla till process.
Windows-skrivbordsapp – Fjärrfelsökning Fjärrverktyg N/A Se Fjärrfelsöka en C#- eller Visual Basic-app eller Fjärrfelsöka en C++-app
.NET Core i Linux – Felsöka Använd Anslut till process dotnet.exe eller ett unikt processnamn Information om hur du använder SSH finns i Fjärrfelsöka .NET Core som körs på Linux med hjälp av SSH. Information om containerbaserade appar finns i Koppla till en process som körs i en Docker-container.
Containerbaserad app – Felsöka Använd Anslut till process dotnet.exe eller ett unikt processnamn Se Bifoga till en process som körs i en Docker-container
Python på Linux – Fjärrfelsökning Använd Anslut till process debugpy Se Ansluta via fjärranslutning från Python-verktyg
Andra typer av appar som stöds – Felsöka på en serverprocess Om servern är fjärransluten använder du fjärrverktyg och Anslut till process chrome.exe, msedge.exeeller andra processer Om det behövs kan du använda Resource Monitor för att identifiera processen. Se Fjärrfelsökning.
UWP-app (Universal Windows Platform), OneCore, HoloLens eller IoT-app – Fjärrfelsökning Felsöka installerat apppaket N/A Se Felsöka ett installerat apppaket i stället för att använda Koppla till process
UWP-app, OneCore, HoloLens eller IoT – Felsöka en app som du inte startade från Visual Studio Felsöka installerat apppaket N/A Se Felsöka ett installerat apppaket i stället för att använda Koppla till process

Använda felsökningsfunktioner

Om du vill använda de fullständiga funktionerna i Visual Studio-felsökningsprogrammet (som att träffa brytpunkter) när du ansluter till en process måste appen exakt matcha din lokala källa och dina symboler. Det betyder att felsökaren måste kunna läsa in rätt symbolfiler (.pdb). Som standard kräver detta en felsökningsversion.

För fjärrfelsökningsscenarier måste källkoden (eller en kopia av källkoden) redan vara öppen i Visual Studio. De kompilerade app binärfilerna på fjärrdatorn måste komma från samma version som på den lokala datorn.

I vissa lokala felsökningsscenarier kan du felsöka i Visual Studio utan åtkomst till källan om rätt symbolfiler finns i appen. Som standard kräver detta en felsökningsversion. Mer information finns i Ange symbol- och källfiler.

Felsöka anslutningsfel

I vissa scenarier kan felsökaren behöva hjälp med att korrekt identifiera vilken typ av kod som ska felsökas. Om anslutningsvärdena har angetts korrekt (du kan visa rätt process i listan Tillgängliga processer ), men felsökningsprogrammet inte kan bifogas, kan du försöka välja det lämpligaste felsökningsprogrammet i listan Kodtyp , vilket kan krävas, till exempel om du felsöker en Linux- eller Python-app.

I vissa scenarier kan felsökaren behöva hjälp med att korrekt identifiera vilken typ av kod som ska felsökas. Om anslutningsvärdena har angetts korrekt (du kan visa rätt process i listan Tillgängliga processer ), men felsökningsprogrammet inte kan kopplas, kan du försöka välja den lämpligaste anslutningstypen i listan Anslutningstyp , vilket kan krävas, till exempel om du felsöker en Linux- eller Python-app. Om du använder anslutningstypen Standard kan du också välja den specifika typ av kod som du vill ansluta till, enligt beskrivningen senare i det här avsnittet.

När felsökningsprogrammet ansluter till en process som körs kan processen innehålla en eller flera typer av kod. Kodtyperna som felsökaren kan ansluta till visas och väljs i dialogrutan Välj kodtyp .

Ibland kan felsökningsprogrammet ansluta till en kodtyp, men inte till en annan kodtyp. Detta inträffar vanligtvis när:

  • Du försöker ansluta till en process som körs på en fjärrdator. Fjärrdatorn kan ha fjärrfelsökningskomponenter installerade för vissa kodtyper, men inte för andra.
  • Du försöker ansluta till två eller flera processer för direkt databasfelsökning. SQL-felsökning stöder endast anslutning till en enda process.

Om felsökningsprogrammet kan koppla till vissa, men inte alla, kodtyper visas ett meddelande som identifierar vilka typer som inte kunde kopplas.

Om felsökningsprogrammet ansluter till minst en kodtyp kan du fortsätta att felsöka processen. Du kan bara felsöka de kodtyper som har kopplats framgångsrikt. Den okopplade koden i processen körs fortfarande, men du kan inte ange brytpunkter, visa data eller utföra andra felsökningsåtgärder för koden.

Om du vill ha mer specifik information om varför felsökaren inte kunde kopplas till en kodtyp kan du försöka ansluta igen till endast den kodtypen.

Hämta specifik information om varför en kodtyp inte kunde kopplas

  1. Koppla från processen. På menyn Felsök väljer du Koppla från alla.

  2. Koppla till processen igen och välj endast den kodtyp som inte kunde kopplas.

    1. I dialogrutan Bifoga till process väljer du processen i listan Tillgängliga processer .

    2. I alternativet Kodtyp väljer du den kodtyp som inte kunde kopplas. Avmarkera de andra kodtyperna.

    3. I dialogrutan Bifoga till process väljer du Bifoga.

    Den här gången misslyckas anslutningen helt och du får ett specifikt felmeddelande.

  1. Koppla från processen. På menyn Felsök väljer du Frigör alla.

  2. Koppla till processen igen och välj endast den kodtyp som inte kunde kopplas.

    1. I dialogrutan Bifoga till process väljer du processen i listan Tillgängliga processer .

    2. Välj Välj.

    3. I dialogrutan Välj kodtyp väljer du Felsöka dessa kodtyper och den kodtyp som inte kunde kopplas. Avmarkera de andra kodtyperna.

    4. Välj OK.

    5. I dialogrutan Bifoga till process väljer du Bifoga.

    Den här gången misslyckas anslutningen helt och du får ett specifikt felmeddelande.