Oefening: onderbrekingspunten instellen

Voltooid

Onderbrekingspunten worden gebruikt om de uitvoering te pauzeren tijdens het foutopsporingsproces. Hiermee kunt u variabelen bijhouden en de volgorde onderzoeken waarin uw code wordt uitgevoerd. Onderbrekingspunten zijn een uitstekende manier om uw foutopsporingsproces te starten.

Een onderbrekingspunt instellen

Eerder in deze module hebt u een oefening voltooid waarin u een toepassing in het foutopsporingsprogramma hebt uitgevoerd. De toepassing heeft 'begroetingsberichten' weergegeven in het deelvenster DEBUG CONSOLE. Aan het einde van de oefening hebt u gemerkt dat de code de begroeting van Andrew op een onverwachte manier herhaalt.

In deze oefening gebruikt u een onderbrekingspunt om het probleem te identificeren.

  1. Zorg ervoor dat uw Program.cs bestand het volgende codevoorbeeld bevat:

    /* 
    This code uses a names array and corresponding methods to display
    greeting messages
    */
    
    string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" };
    
    string messageText = "";
    
    foreach (string name in names)
    {
        if (name == "Sophia")
            messageText = SophiaMessage();
        else if (name == "Andrew")
            messageText = AndrewMessage();
        else if (name == "AllGreetings")
            messageText = SophiaMessage();
            messageText = messageText + "\n\r" + AndrewMessage();
    
        Console.WriteLine(messageText + "\n\r");
    }
    
    bool pauseCode = true;
    while (pauseCode == true);
    
    static string SophiaMessage()
    {
        return "Hello, my name is Sophia.";
    }
    
    static string AndrewMessage()
    {
        return "Hi, my name is Andrew. Good to meet you.";
    }
    
  2. Gebruik de hulpprogramma's voor foutopsporingsprogramma's van Visual Studio Code om een onderbrekingspunt in te stellen op de eerste coderegel binnen de lus foreach .

    Schermopname van een onderbrekingspunt in code.

    Aanbeveling

    Een eenvoudige optie voor het in-/uitschakelen van een onderbrekingspunt is door het gebied links van het regelnummer te selecteren (met de linkermuisknop). Onderbrekingspunten kunnen ook worden ingesteld met behulp van het Run menu en met behulp van sneltoetsen.

  3. Selecteer in het menu Uitvoeren de foutopsporing starten.

  4. U ziet dat de uitvoering van code wordt onderbroken op het onderbrekingspunt en dat de huidige coderegel is gemarkeerd in de editor.

    Schermopname waarin de uitvoering van code is onderbroken op een onderbrekingspunt.

  5. Op de werkbalk Besturingselementen voor foutopsporing, selecteer Stap naar binnen.

    U kunt de muisaanwijzer op de knoppen op de werkbalk Besturingselementen voor foutopsporing plaatsen om de knoplabels weer te geven.

  6. U ziet dat de uitvoering van de code naar de volgende coderegel gaat en pauzeert.

    messageText = SophiaMessage();
    

    Met deze coderegel wordt de retourwaarde van de SophiaMessage methode toegewezen aan de tekenreeksvariabele messageText.

  7. Neem even de tijd om na te gaan waarom het selecteren van Step Into dit resultaat heeft opgeleverd.

    • De knop Stap in wordt gebruikt om naar de volgende uitvoerbare instructie te gaan.
    • Omdat het eerste element in de names array Sophia is en de if instructie controleert op de naam Sophia, evalueert de expressie tot true en wordt de uitvoering naar het codeblok van de if instructie verplaatst.
  8. Op de werkbalk Besturingselementen voor foutopsporing, selecteer Stap naar binnen.

  9. U ziet dat de uitvoering van code naar de SophiaMessage methode gaat en wordt onderbroken.

    De knop Stap-in is uitgebreid naar de volgende uitvoerbare coderegel. De volgende uitvoerbare coderegel is niet de volgende regelnummer in het bestand; het is de volgende instructie in het pad van uitvoering. In dit geval is de volgende uitvoerbare instructie het toegangspunt voor de SophiaMessage methode.

  10. Selecteer Stap uit op de werkbalk Besturingselementen voor foutopsporing.

  11. U merkt dat de uitvoering van de code terugkeert naar de regel die de SophiaMessage-methode heeft aangeroepen, waarna deze pauzeert.

  12. Neem even de tijd om na te gaan waarom het selecteren van Step Out dit resultaat heeft opgeleverd.

    Wanneer u zich binnen een methode bevindt, voltooit de knop Uitstappen de resterende regels van de huidige methode en keert deze vervolgens terug naar de uitvoeringscontext die de methode heeft aangeroepen.

  13. Op de werkbalk Besturingselementen voor foutopsporing, selecteer Stap naar binnen.

  14. U ziet dat de uitvoering van de code naar de volgende coderegel gaat en pauzeert.

    messageText = messageText + "\n\r" + AndrewMessage();
    
  15. Neem even de tijd om na te gaan waarom de uitvoering naar deze coderegel is gevorderd.

    Hoewel de inspringing van de code impliceert dat deze coderegel deel uitmaakt van het codeblok voor de else if-instructie, is dat niet het geval. Het gebruik van accolades {} om de codeblokken voor deze if - else if structuur te definiëren, zou hebben geholpen om deze fout te voorkomen. Terwijl de code wordt geschreven, wordt het bericht van Andrew toegevoegd telkens messageText wanneer de lus wordt herhaald.

Uw code-updates controleren

Zodra u een probleem in uw code hebt geïsoleerd, moet u de code bijwerken en vervolgens controleren of het probleem is opgelost.

  1. Selecteer Stoppen op de werkbalk Besturingselementen voor foutopsporing.

  2. Neem even de tijd om uw codelogica op te lossen.

    U hebt een aantal opties voor het oplossen van het geïdentificeerde probleem in uw code. Voorbeeld:

    • U kunt de bestaande coderegels behouden en accolades {} toevoegen aan de if structuur voor elk codeblok.

    • U kunt de twee coderegels die volgen op de laatste else if instructie samenvoegen en één instructie als volgt vormen:

      else if (name == "AllGreetings")
          messageText = SophiaMessage() + "\n\r" + AndrewMessage();
      

    In beide gevallen moet de bijgewerkte code de aanroep naar AndrewMessage binnen het codeblok bevatten wanneer name == "AllGreetings".

  3. Selecteer Opslaan in het menu Bestand.

  4. Gebruik de hulpprogramma's voor foutopsporingsprogramma's om het onderbrekingspunt te wissen dat u eerder hebt ingesteld.

  5. Selecteer in het menu Uitvoeren de foutopsporing starten.

  6. Controleer of uw code nu de verwachte resultaten produceert.

    Hello, my name is Sophia.
    
    Hi, my name is Andrew. Good to meet you.
    
    Hello, my name is Sophia.
    Hi, my name is Andrew. Good to meet you.
    
  7. Selecteer Stoppen op de werkbalk Besturingselementen voor foutopsporing.

Gefeliciteerd! U hebt het foutopsporingsprogramma van Visual Studio Code gebruikt om u te helpen bij het isoleren en corrigeren van een logisch probleem.

Samenvatting

Hier volgen enkele belangrijke dingen die u in deze les moet onthouden:

  • Gebruik onderbrekingspunten om de uitvoering van code tijdens een foutopsporingssessie te onderbreken.
  • Gebruik Stap in vanaf de werkbalk Besturingselementen voor foutopsporing om de volgende uitvoerbare coderegel te bekijken.
  • Gebruik Step Out van de Debug-besturingen werkbalk om door de huidige methode heen te stappen en terug te keren naar de coderegel die de methode heeft aangeroepen.