Delen via


Problemen met onderbrekingspunten oplossen in het Visual Studio-foutopsporingsprogramma

Van toepassing op: Visual Studio

Onderbrekingspuntwaarschuwingen

Bij foutopsporing heeft een onderbrekingspunt twee mogelijke visuele statussen:

  • Een effen rode cirkel, als het foutopsporingsprogramma een onderbrekingspunt heeft ingesteld in het doelproces.
  • Een lege cirkel (donkergrijs of wit gevuld, afhankelijk van uw thema), als het onderbrekingspunt is uitgeschakeld of er een waarschuwing optreedt bij het instellen van het onderbrekingspunt.

Als u het verschil wilt bepalen, beweegt u de muisaanwijzer over het onderbrekingspunt en controleert u of er een waarschuwing is. In de volgende twee secties worden opvallende waarschuwingen beschreven en hoe u deze kunt oplossen.

"Er zijn geen symbolen geladen voor dit document"

Navigeer naar Fouten opsporen in>Windows-modules> wanneer u fouten opspoort en controleer of uw module is geladen.

  • Als uw module is geladen, controleert u de kolom Symboolstatus om te zien of symbolen zijn geladen.
    • Als symbolen niet zijn geladen, controleert u de status van het symbool om het probleem vast te stellen:

      Klik in het venster Modules met de rechtermuisknop op de module waarvoor symbolen niet zijn geladen en selecteer Informatie over het laden van symbolen....

      Schermopname van informatie over het laden van symbolen in het venster Modules.

      Zie Symbool (.pdb) en bronbestanden opgeven voor meer informatie over het laden van symbolen.

    • Als er symbolen worden geladen, bevat de PDB geen informatie over uw bronbestanden. Enkele mogelijke oorzaken zijn:

      • Als uw bronbestanden onlangs zijn toegevoegd, controleert u of er een bijgewerkte versie van de module wordt geladen.
      • Het is mogelijk om gestripte PDBs te maken met behulp van de optie /PDBSTRIPPED linker. Stripped PDBs bevatten geen bronbestandsgegevens. Bevestig dat u met een volledige PDB werkt en geen gestreepte PDB.
      • Het PDB-bestand is gedeeltelijk beschadigd. Verwijder het bestand en voer een schone build van de module uit om het probleem op te lossen.
  • Als uw module niet is geladen, controleert u het volgende om de oorzaak te achterhalen:
    • Controleer of u het juiste proces foutopsporing uitvoert.
    • Controleer of u fouten in de juiste code opspoort. U kunt zien welk type code het foutopsporingsprogramma is geconfigureerd voor foutopsporing in het venster Processen (Fouten opsporen in>Windows-processen).> Als u bijvoorbeeld C#-code wilt opsporen, controleert u of uw foutopsporingsprogramma is geconfigureerd voor het juiste type en de juiste versie van .NET (bijvoorbeeld Managed (v4*) versus Managed (v2*/v3*) versus Managed (CoreCLR)).

"… de huidige broncode verschilt van de versie die is ingebouwd in..."

Als een bronbestand is gewijzigd en de bron niet meer overeenkomt met de code die u foutopsporing uitvoert, worden met het foutopsporingsprogramma standaard geen onderbrekingspunten in de code ingesteld. Normaal gesproken treedt dit probleem op wanneer een bronbestand wordt gewijzigd, maar de broncode niet opnieuw is opgebouwd. U kunt dit probleem oplossen door het project opnieuw te bouwen. Als het buildsysteem denkt dat het project al up-to-date is, ook al is het niet, kunt u afdwingen dat het projectsysteem opnieuw moet worden opgebouwd. Bouw het project opnieuw door het bronbestand opnieuw op te slaan of door de build-uitvoer op te schonen voordat u gaat bouwen.

In zeldzame scenario's kunt u fouten opsporen zonder overeenkomende broncode te hebben. Foutopsporing zonder overeenkomende broncode kan leiden tot een verwarrende foutopsporingservaring, dus zorg ervoor dat u wilt doorgaan.

Volg een van de opties om deze veiligheidscontroles uit te schakelen:

  • Als u één onderbrekingspunt wilt wijzigen, beweegt u de muisaanwijzer over het onderbrekingspuntpictogram in de editor en selecteert u het instellingenpictogram (tandwielpictogram). Er wordt een korte weergavevenster toegevoegd aan de editor. Boven aan het korte venster ziet u een hyperlink die de locatie van het onderbrekingspunt aangeeft. Selecteer de hyperlink om het wijzigen van de locatie van het onderbrekingspunt toe te staan en schakel het selectievakje Toestaan dat de broncode anders is dan het origineel.
  • Als u deze instelling voor alle onderbrekingspunten wilt wijzigen, gaat u naar Opties en instellingen voor foutopsporing>. Schakel op de pagina Foutopsporing/Algemeen de bronbestanden vereisen die exact overeenkomen met de oorspronkelijke versieoptie uit. Zorg ervoor dat u deze optie opnieuw inschakelt wanneer u klaar bent met foutopsporing.

Het onderbrekingspunt is ingesteld (geen waarschuwing), maar is niet geraakt

Deze sectie bevat informatie over het oplossen van problemen wanneer het foutopsporingsprogramma geen waarschuwingen weergeeft: het onderbrekingspunt is een ononderbroken rode cirkel terwijl er actief foutopsporing wordt uitgevoerd, maar het onderbrekingspunt wordt niet bereikt.

Hier volgen enkele zaken die u kunt controleren:

  1. Als uw code in meer dan één proces of meer dan één computer wordt uitgevoerd, moet u ervoor zorgen dat u fouten opspoort in het juiste proces of de juiste computer.
  2. Controleer of uw code wordt uitgevoerd. Als u wilt testen of uw code wordt uitgevoerd, voegt u een aanroep naar (C#/VB) of __debugbreak (C++) toe System.Diagnostics.Debugger.Break aan de coderegel waar u het onderbrekingspunt probeert in te stellen en vervolgens het project opnieuw te bouwen.
  3. Als u geoptimaliseerde code voor foutopsporing gebruikt, controleert u of de functie waar uw onderbrekingspunt is ingesteld, niet in een andere functie wordt opgenomen. De Debugger.Break test die in de vorige controle is beschreven, kan ook werken om dit probleem te testen.
  4. Voor het koppelen aan processcenario's moet u ervoor zorgen dat u het juiste type code opspoort (bijvoorbeeld scriptcode versus .NET Framework versus .NET 5+). Als u dit wilt onderzoeken, schakelt u de optie Bijvoegen in het dialoogvenster Bijvoegen in en kiest u zo nodig Selecteren om het codetype te wijzigen.

Ik heb een onderbrekingspunt verwijderd, maar ik blijf deze raken wanneer ik weer foutopsporing start

Als u een onderbrekingspunt hebt verwijderd tijdens foutopsporing, kunt u het onderbrekingspunt opnieuw bereiken wanneer u de volgende keer begint met foutopsporing. Als u wilt stoppen met het bereiken van dit onderbrekingspunt, moet u ervoor zorgen dat alle exemplaren van het onderbrekingspunt worden verwijderd uit het venster Onderbrekingspunten .