Delen via


Fouten opsporen in meerdere processen (C#, Visual Basic, C++)

Visual Studio kan fouten opsporen in een oplossing met verschillende processen. U kunt processen starten en ertussen schakelen, onderbreken, doorgaan en stapsgewijs de broncode doorlopen, het debuggen stoppen en beëindigen of loskoppelen van individuele processen.

Foutopsporing starten met meerdere processen

Wanneer meer dan één project in een Visual Studio-oplossing onafhankelijk kan worden uitgevoerd, kunt u selecteren welk project het foutopsporingsprogramma start. Het huidige opstartproject wordt vetgedrukt weergegeven in Solution Explorer.

Als u het opstartproject wilt wijzigen, klikt u in Solution Explorer met de rechtermuisknop op een ander project en selecteert u Instellen als opstartproject.

Als u wilt beginnen met het opsporen van fouten in een project vanuit Solution Explorer zonder het opstartproject te maken, klikt u met de rechtermuisknop op het project en selecteert u Debug>Start nieuwe instantie of Stap in een nieuw exemplaar.

Het opstartproject of meerdere projecten instellen vanuit oplossingseigenschappen:

  1. Selecteer de oplossing in Solution Explorer en selecteer vervolgens het pictogram Eigenschappen op de werkbalk of klik met de rechtermuisknop op de oplossing en selecteer Eigenschappen.

  2. Selecteer Common Properties> op de pagina Eigenschappen.

    Wijzigen van het opstarttype voor een project

  3. Selecteer Huidige selectie, Enkel opstartproject en een projectbestand of Meerdere opstartprojecten.

    Als u meerdere opstartprojecten selecteert, kunt u de opstartvolgorde en de actie wijzigen die moet worden uitgevoerd voor elk project: Starten, Starten zonder foutopsporing of Geen.

  4. Selecteer Toepassen of OK om het dialoogvenster toe te passen en te sluiten.

Koppelen aan een proces

Het foutopsporingsprogramma kan ook worden gekoppeld aan apps die worden uitgevoerd in processen buiten Visual Studio, waaronder op externe apparaten. Nadat u een app hebt gekoppeld, kunt u het foutopsporingsprogramma van Visual Studio gebruiken. Foutopsporingsfuncties zijn mogelijk beperkt. Het hangt af van of de app is gebouwd met foutopsporingsgegevens, of u toegang hebt tot de broncode van de app en of de JIT-compiler foutopsporingsgegevens bijhoudt.

Zie Koppelen aan actieve processen voor meer informatie.

Koppelen aan een actief proces:

  1. Wanneer de app wordt uitgevoerd, selecteert uBijvoegen bij proces>.

    Bijvoegen bij proces dialoogvenster

  2. Selecteer in het dialoogvenster Bijvoegen aan proces het proces in de lijst Beschikbare processen en selecteer vervolgens Bijvoegen.

Opmerking

Het foutopsporingsprogramma hecht zich niet automatisch aan een subproces dat wordt gestart door een debugged proces, zelfs niet als het subproject zich in dezelfde oplossing bevindt. Als u fouten wilt opsporen in een onderliggend proces, koppelt u het onderliggende proces nadat het is gestart of configureert u de Windows-registereditor om het onderliggende proces in een nieuw foutopsporingsprogramma-exemplaar te starten.

De Register-editor gebruiken om automatisch een proces te starten in het foutopsporingsprogramma

Soms moet u mogelijk fouten opsporen in de opstartcode voor een app die door een ander proces wordt gestart. Voorbeelden hiervan zijn services en aangepaste installatieacties. U kunt het foutopsporingsprogramma starten en automatisch koppelen aan de app.

  1. Start de Windows-registereditor door regedit.exeuit te voeren.

  2. Navigeer in de Register-editor naar HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.

  3. Selecteer de map van de app die u wilt starten in het foutopsporingsprogramma.

    Als de app niet wordt weergegeven als een onderliggende map, klikt u met de rechtermuisknop op Opties voor het uitvoeren van afbeeldingsbestanden, selecteert u Nieuw>Sleutel en typt u de naam van de app. Of klik met de rechtermuisknop op de nieuwe sleutel in de structuur, selecteer Naam wijzigen en voer vervolgens de naam van de app in.

  4. Klik met de rechtermuisknop op de nieuwe sleutel in de structuur en selecteer Nieuwe>tekenreekswaarde.

  5. Wijzig de naam van de nieuwe waarde van New Value #1 in debugger.

  6. Klik met de rechtermuisknop op foutopsporingsprogramma en selecteer Wijzigen.

    Dialoogvenster Tekenreeks Bewerken

  7. Typ in het dialoogvenster vsjitdebugger.exe in het vak Waardegegevens en selecteer vervolgens OK.

    Automatische foutopsporing startinvoer in regedit.exe

Fouten opsporen met meerdere processen

Wanneer u een app met meerdere processen aan het debuggen bent, zijn de opdrachten voor het stoppen, stappen en doorgaan met foutopsporing standaard van invloed op alle processen. Wanneer een proces bijvoorbeeld wordt onderbroken op een onderbrekingspunt, wordt de uitvoering van alle andere processen ook onderbroken. U kunt dit standaardgedrag wijzigen om meer controle te krijgen over de doelen van uitvoeringsopdrachten.

Wijzigen of alle processen worden onderbroken wanneer één proces wordt onderbroken:

  1. In het deelvenster Extra (of Foutopsporing) >Opties, vouw de sectie Alle instellingen>Foutopsporing>Algemeen uit.
  1. In het dialoogvenster Extra (of Foutopsporing) >Opties vouw de sectie Foutopsporing>Algemeen uit.
  1. Selecteer of verwijder het selectievakje Alle processen stoppen wanneer één proces stopt.

Break-, Stap-, Continue-opdrachten

De volgende tabel beschrijft het gedrag van foutopsporingsopdrachten wanneer het selectievakje Alle processen verbreken wanneer één procesonderbreking is ingeschakeld of uitgeschakeld:

Opdracht Uitverkoren Uitgevinkt
Debuggen>Alles verbreken Alle processen falen. Alle processen vallen uit.
Debuggen>Voortzetten Alle processen worden hervat. Alle onderbroken processen worden hervat.
Debuggen>Stap in, stap over of stap uit Alle processen worden uitgevoerd tijdens de huidige processtappen.
Vervolgens vallen alle processen stil.
Huidige processtappen.
Onderbroken processen hervatten.
Processen gaan door.
Debuggen>Stap in huidig proces, stap over huidig proces of stap uit huidig proces N/A Huidige processtappen.
Andere processen behouden hun bestaande status (onderbroken of actief).
Bronvenster Onderbrekingspunt Alle processen vallen uit. Alleen onderbrekingen van het proces van het bronvenster.
Bronvenster Uitvoeren naar cursor
Het bronvenster moet zich in het huidige proces bevinden.
Alle processen worden uitgevoerd terwijl het proces van het bronvenster tot aan de cursor loopt en vervolgens stopt.
Vervolgens breken alle andere processen af.
Het bronvensterproces wordt uitgevoerd op cursor.
Andere processen behouden hun bestaande status (onderbroken of actief).
Processenvenster >Proces onderbreken N/A Geselecteerde procesonderbrekingen.
Andere processen behouden hun bestaande status (onderbroken of actief).
Processen> in venster Doorgaan met proces N/A Het geselecteerde proces wordt hervat.
Andere processen behouden hun bestaande status (onderbroken of actief).

De bron- en symboolbestanden (.pdb) zoeken

Als u door de broncode van een proces wilt navigeren, heeft het foutopsporingsprogramma toegang nodig tot de bronbestanden en symboolbestanden. Zie Symbool opgeven (.pdb) en bronbestanden voor meer informatie.

Als u geen toegang hebt tot de bestanden van een proces, kunt u navigeren met behulp van het venster Disassembler. Zie Het venster Demontage gebruiken voor meer informatie.

Schakelen tussen processen

U kunt op elk gewenst moment aan meerdere processen koppelen wanneer u foutopsporing uitvoert, maar er is maar één proces actief in het foutopsporingsprogramma. U kunt het actieve of huidige proces instellen op de werkbalk Locatie voor foutopsporing of in het venster Processen . Als u wilt schakelen tussen processen, moeten beide processen zich in de onderbrekingsmodus bevinden.

Het huidige proces instellen via de werkbalk Foutopsporingslocatie:

  1. Als u de werkbalk Locatie voor foutopsporing wilt openen, selecteert uWerkbalken>>.

  2. Selecteer tijdens foutopsporing op de werkbalk Locatie voor foutopsporing het proces dat u wilt instellen als het huidige proces in de vervolgkeuzelijst Proces .

    Schakelen tussen processen

Het huidige proces instellen vanuit het venster Processen:

  1. Tijdens foutopsporing, selecteert u Foutopsporing>Windows>Processen om het venster Processen te openen.

  2. In het venster Processen wordt het huidige proces gemarkeerd met een gele pijl. Dubbelklik op het proces dat u wilt instellen als het huidige proces.

    Processenvenster

Als u overschakelt naar een proces, wordt dit ingesteld als het huidige proces voor foutopsporing. De foutopsporingsprogrammavensters geven de status voor het huidige proces weer en stappenopdrachten zijn alleen van invloed op het huidige proces.

Foutopsporing stoppen met meerdere processen

Wanneer u Debuggen>Debuggen stoppen selecteert, stopt de debugger of wordt deze losgekoppeld van alle processen.

  • Als het huidige proces is gestart in het foutopsporingsprogramma, wordt het proces beëindigd.

  • Als u het foutopsporingsprogramma aan het huidige proces hebt gekoppeld, wordt het foutopsporingsprogramma losgekoppeld van het proces en blijft het proces actief.

Als u vanuit een Visual Studio-oplossing een proces gaat debuggen, vervolgens verbinding maakt met een ander proces dat al wordt uitgevoerd en ervoor kiest Stop Debugging, eindigt de foutopsporingssessie. Het proces dat is gestart in Visual Studio eindigt, terwijl het proces dat u eraan hebt gekoppeld, actief blijft.

Als u wilt bepalen hoe foutopsporing stoppen van invloed is op een afzonderlijk proces, klikt u in het venster Processen met de rechtermuisknop op een proces en schakelt u het selectievakje Loskoppelen in of uit wanneer foutopsporing is gestopt .

Opmerking

De Optie om alle processen te stoppen wanneer één proces uitvalt heeft geen invloed op het stoppen, beëindigen, of loskoppelen van processen.

Opdrachten stoppen, beëindigen en loskoppelen

De volgende tabel beschrijft het gedrag van de stop-, beëindigings- en loskoppelopdrachten van het foutopsporingsprogramma met meerdere processen:

Opdracht Beschrijving
Debuggen>Debuggen stoppen Tenzij het gedrag wordt gewijzigd in het venster Processen , worden processen die door het foutopsporingsprogramma zijn gestart, beëindigd en worden gekoppelde processen losgekoppeld.
Debuggen>Alles beëindigen Alle processen worden beëindigd.
Fouten opsporen>Alles ontkoppelen De debugger koppelt los van alle processen.
> voor het loskoppelen van processen Het foutopsporingsprogramma wordt losgekoppeld van het geselecteerde proces.
Andere processen behouden hun bestaande status (onderbroken of actief).
Processenvenster>Proces beëindigen Het geselecteerde proces is beëindigd.
Andere processen behouden hun bestaande status (onderbroken of actief).
Processen Venster>losmaken wanneer foutopsporing stopt Als deze optie is geselecteerd, wordt foutopsporing> stoppen metfoutopsporing losgekoppeld van het geselecteerde proces.
Als Debuggen niet is geselecteerd, beëindigt Stop Debugging het geselecteerde proces.