Dela via


Felsöka flera processer (C#, Visual Basic, C++)

Visual Studio kan felsöka en lösning som har flera processer. Du kan starta och växla mellan processer; sätta en brytpunkt, fortsätta och gå igenom källkoden steg för steg; stoppa felsökning och avsluta eller frikoppla från individuella processer.

Börja felsöka med flera processer

När fler än ett projekt i en Visual Studio-lösning kan köras separat kan du välja vilket projekt felsökningsprogrammet ska starta. Det aktuella startprojektet visas i fetstil i Solution Explorer.

Om du vill ändra startprojektet högerklickar du på ett annat projekt i Solution Explorer och väljer Ange som startprojekt.

Om du vill börja felsöka ett projekt från Solution Explorer utan att göra det till startprojektet högerklickar du på projektet och väljer Felsöka>Starta ny instans eller Stega in i en ny instans.

Så här anger du startprojektet eller flera projekt från lösningsegenskaper:

  1. Välj lösningen i Solution Explorer och välj sedan ikonen Egenskaper i verktygsfältet eller högerklicka på lösningen och välj Egenskaper.

  2. På sidan Egenskaper väljer du Vanliga egenskaper>Startprojekt.

    Ändra starttyp för ett projekt

  3. Välj Aktuell markering, Enskilt startprojekt och en projektfil eller Flera startprojekt.

    Om du väljer Flera startprojekt kan du ändra startordningen och åtgärden för varje projekt: Start, Start utan felsökning eller Ingen.

  4. Välj Använd eller OK för att tillämpa och stänga dialogrutan.

Koppla till en process

Felsökningsprogrammet kan också ansluta till appar som körs i processer utanför Visual Studio, inklusive på fjärrenheter. När du har bifogat till en app kan du använda Visual Studio-felsökningsprogrammet. Felsökningsfunktionerna kan vara begränsade. Det beror på om appen har skapats med felsökningsinformation, om du har åtkomst till appens källkod och om JIT-kompilatorn spårar felsökningsinformation.

Mer information finns i Koppla till processer som körs.

Så här kopplar du till en process som körs:

  1. När appen körs väljer du Felsöka>bifoga till process.

    Dialogrutan Bifoga till Process

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

Anmärkning

Felsökningsprogrammet ansluter inte automatiskt till en underordnad process som startas av en felsökt process, även om det underordnade projektet finns i samma lösning. Om du vill felsöka en underordnad process ansluter du antingen till den underordnade processen när den har startats eller konfigurerar Windows-registereditorn för att starta den underordnade processen i en ny felsökningsinstans.

Använd Registereditorn för att starta en process automatiskt i felsökningsprogrammet

Ibland kan du behöva felsöka startkoden för en app som startas av en annan process. Exempel är tjänster och anpassade konfigurationsåtgärder. Du kan starta felsökningsprogrammet och automatiskt ansluta till appen.

  1. Starta Windows-registereditorn genom att köraregedit.exe.

  2. I Registereditorn navigerar du till HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.

  3. Välj mappen för den app som du vill starta i felsökningsprogrammet.

    Om appen inte visas som en barnmapp högerklickar du på Alternativ för bildfilkörning, väljer Ny>nyckel och skriver in appnamnet. Eller högerklicka på den nya nyckeln i trädet, välj Byt namn och ange sedan appnamnet.

  4. Högerklicka på den nya nyckeln i trädet och välj Nytt>strängvärde.

  5. Ändra namnet på det nya värdet från Nytt värde #1 till debugger.

  6. Högerklicka på felsökningsprogrammet och välj Ändra.

    Dialogrutan Redigera sträng

  7. I dialogrutan Redigera sträng skriver du vsjitdebugger.exe i rutan Värdedata och väljer sedan OK.

    Automatisk startpost för debugger i regedit.exe

Felsöka med flera processer

När du felsöker en app med flera processer påverkar kommandona breaking, stepping och continuing debugger alla processer som standard. När en process till exempel pausas vid en brytpunkt pausas även körningen av alla andra processer. Du kan ändra det här standardbeteendet för att få mer kontroll över mål för exekveringskommandon.

Så här ändrar du om alla processer pausas när en process bryts:

  1. I fönstret Verktyg (eller Felsökning) >expanderar du avsnittet Alla inställningar>Felsökning>allmänt .
  1. I dialogrutan Verktyg (eller Felsökning) >expanderar du avsnittet Felsöka>allmänt .
  1. Markera eller avmarkera kryssrutan Bryt alla processer när en process bryter .

Break-, Step- och Continue-kommandon

I följande tabell beskrivs beteendet för felsökningskommandon när kryssrutan Bryt alla processer när en process bryts markeras eller avmarkeras:

Kommando Har valts Avvalt
Felsöka>Pausa alla Alla processer falerar. Alla processer går sönder.
Felsöka>Fortsätta Alla processer återupptas. Alla pausade processer återupptas.
Felsöka>Stega in, stega över eller gå ut Alla processer körs medan den aktuella processen steg.
Sedan bryts alla processer.
Nuvarande processsteg.
Pausade processer återupptas.
Processer som körs fortsätter.
Felsöka>Stega in i aktuell process, steg över aktuell process eller stega ut aktuell process N/A Aktuella processsteg.
Andra processer behåller sitt befintliga tillstånd (pausat eller körs).
Källfönstrets brytpunkt Alla processer misslyckas. Endast källfönstrets process bryts.
Källfönster Kör till markör
Källfönstret måste vara i den aktuella processen.
Alla processer körs medan källfönsterprocessen körs fram till markören och sedan stannar.
Sedan bryts alla andra processer.
Processen i källfönstret körs till markören.
Andra processer behåller sitt befintliga tillstånd (pausat eller körs).
Processfönster>Avbryt process N/A Valda processbrytningar.
Andra processer behåller sitt befintliga tillstånd (pausat eller körs).
Processfönstret>Fortsätt process N/A Den valda processen återupptas.
Andra processer behåller sitt befintliga tillstånd (pausat eller körs).

Hitta käll- och symbolfilerna (.pdb)

För att navigera i källkoden för en process behöver felsökaren åtkomst till sina källfiler och symbolfiler. Mer information finns i avsnittet Ange symbol (.pdb) och källfiler.

Om du inte kan komma åt filerna för en process kan du navigera med hjälp av fönstret Disassembly . Mer information finns i How to: Use the Disassembly window (Så här gör du: Använd fönstret Disassembly).

Växla mellan processer

Du kan ansluta till flera processer när du felsöker, men endast en process är aktiv i felsökningsprogrammet vid en viss tidpunkt. Du kan ange den aktiva eller aktuella processen i verktygsfältet Felsökningsplats eller i fönstret Processer . Om du vill växla mellan processer måste båda processerna vara i brytläge.

Så här anger du den aktuella processen från verktygsfältet Felsökningsplats:

  1. Öppna verktygsfältet Felsökningsplats genom att välja Visa>verktygsfält>Felsökningsplats.

  2. Under felsökningen går du till verktygsfältet Felsökningsplats och väljer den process som du vill ange som den aktuella processen i listrutan Process .

    Växla mellan processer

Så här anger du den aktuella processen från fönstret Processer:

  1. Om du vill öppna fönstret Processer väljer du Felsöka>Windows-processer> under felsökning.

  2. I fönstret Processer markeras den aktuella processen med en gul pil. Dubbelklicka på den process som du vill ange som den aktuella processen.

    Fönstret Processer

Om du växlar till en process anges den som den aktuella processen för felsökning. Felsökningsfönster visar tillståndet för den aktuella processen, och stegkommandon påverkar endast den aktuella processen.

Sluta felsöka med flera processer

När du väljer Felsöka>sluta felsöka avslutas eller kopplas felsökningsprogrammet som standard bort från alla processer.

  • Om den aktuella processen startades i felsökningsprogrammet avslutas processen.

  • Om du anslöt felsökningsprogrammet till den aktuella processen, kopplas det från och processen fortsätter att köras.

Om du börjar felsöka en process från en Visual Studio-lösning ansluter du till en annan process som redan körs och väljer sedan Sluta felsöka. Felsökningssessionen avslutas. Processen som startades i Visual Studio avslutas, medan processen som du kopplade till fortsätter att köras.

Om du vill styra hur Stoppa felsökning påverkar en enskild process högerklickar du på en process i fönstret Processer och markerar eller avmarkerar kryssrutan Koppla från när felsökningen stoppades .

Anmärkning

Alternativet Avbryt alla processer när en process avbryts påverkar inte att stoppa, avsluta eller koppla från processer vid felsökning.

Stoppa, avsluta och frikoppla kommandon

I följande tabell beskrivs beteenden hos felsökningsprogrammets kommandon för att stoppa, avsluta och koppla från när flera processer är inblandade:

Kommando Beskrivning
Felsöka>Sluta felsöka Om inte beteendet ändras i fönstret Processer avslutas processer som startas av felsökningsprogrammet och anslutna processer kopplas från.
Felsöka>Avsluta alla Alla processer avslutas.
Felsöka>Koppla bort alla Felsökningsprogrammet kopplar från alla processer.
Processer fönster >Koppla från process Felsökningsprogrammet avkopplar den valda processen.
Andra processer behåller sitt befintliga tillstånd (pausat eller körs).
Processfönstret>Avsluta process Den valda processen avslutades.
Andra processer behåller sitt befintliga tillstånd (pausat eller körs).
Processer>Koppla från när felsökningen avslutas Om du väljer det här alternativet, kopplar Debug>Stoppa felsökning bort från den valda processen.
Om den inte är vald avslutas den valda processen med Debugga>Stoppa felsökning.