Share via


Zelfstudie: Code uitvoeren in het foutopsporingsprogramma in Visual Studio

Dit artikel bevat stap 4 in de reeks zelfstudies Werken met Python in Visual Studio.

Visual Studio biedt mogelijkheden voor het beheren van projecten, een uitgebreide bewerkingservaring, het Interactive Windowen volledige foutopsporing voor Python-code. In stap 4 van deze reeks zelfstudies gebruikt u het Foutopsporingsprogramma om uw code stapsgewijs uit te voeren, inclusief elke iteratie van een lus. In het Foutopsporingsprogrammakunt u het programma onderbreken wanneer aan bepaalde voorwaarden wordt voldaan. Op elk moment waarop het programma is onderbroken, kunt u de volledige status van het programma controleren en de waarde van variabelen wijzigen. Dergelijke acties zijn essentieel voor het opsporen van programmafouten en bieden ook nuttige hulpmiddelen voor het volgen van de exacte programmastroom.

In stap 4 van de zelfstudie leert u het volgende:

  • Python-code uitvoeren in het Foutopsporingsprogramma in Visual Studio
  • Onderbrekingspunten en voorwaarden instellen
  • De status van het programma onderzoeken en variabelen wijzigen
  • Verken Foutopsporingsprogramma vensters en acties

Voorwaarden

Het Python-bestand voorbereiden

Volg deze stappen om uw Python-projectbestand bij te werken om robuustere code op te nemen om de oefening voor foutopsporing voor te bereiden:

  1. Open het Python-projectbestand (.py) in de editor.

  2. Vervang de code in het bestand door de volgende code. Met deze versie van de code wordt de make_dot_string-functie uitgebreid, zodat u de afzonderlijke stappen in het foutopsporingsprogramma kunt onderzoeken. Hiermee wordt de for lus verplaatst naar een main-functie en wordt deze expliciet uitgevoerd door de main-functie aan te roepen:

    from math import cos, radians
    
    # Create a string with spaces proportional to a cosine of x in degrees
    def make_dot_string(x):
        rad = radians(x)                             # cos works with radians
        numspaces = int(20 * cos(rad) + 20)          # Scale to 0-40 spaces
        st = ' ' * numspaces + 'o'                   # Place 'o' after the spaces
        return st
    
    def main():
        for i in range(0, 1800, 12):
            s = make_dot_string(i)
            print(s)
    
    main()
    

Start foutopsporing

Nu bent u klaar om uw bijgewerkte Python-code te controleren in het foutopsporingsprogramma.

  1. Controleer of de code correct werkt door Foutopsporing>Start Debugging op de werkbalk te selecteren of gebruik de sneltoets F5. Met deze opdrachten wordt de code uitgevoerd in het Foutopsporingsprogramma.

    De Foutopsporingsprogramma- detecteert geen problemen, dus het programma wordt uitgevoerd. Er wordt een uitvoervenster geopend en u ziet een aantal iteraties van het cosinusgolfpatroon. Selecteer een willekeurige toets om het uitvoervenster te sluiten.

    Tip

    Als u het uitvoervenster automatisch wilt sluiten wanneer het programma is voltooid, selecteert u Extra>Opties, vouwt u de Python>Foutopsporing tabblad uit en schakelt u het Wachten op invoer uit wanneer het proces normaal optie wordt afgesloten.

  2. Stel een onderbrekingspunt in op de for-lusinstructie met behulp van een van de volgende methoden:

    • Selecteer in de linkermarge voor de coderegel.
    • Klik met de rechtermuisknop op de coderegel en selecteer onderbrekingspunt>Onderbrekingspunt invoegen.
    • Plaats de invoegpositie in de regel met code en selecteer Foutopsporing>Onderbrekingspunt in-/uitschakelen (of gebruik de sneltoets F9).

    Onderbrekingspunten stoppen met het uitvoeren van code op een gemarkeerd punt, zodat u de status van het programma kunt inspecteren. Er wordt een rode stip weergegeven op elke regel met een ingesteld onderbrekingspunt.

    Schermopname die laat zien hoe u een onderbrekingspunt instelt in het foutopsporingsprogramma in Visual Studio.

  3. Start het foutopsporingsprogramma opnieuw (F5-). De lopende code voor het programma stopt op de regel met het ingestelde onderbrekingspunt. U kunt nu de aanroepstack inspecteren en variabelen onderzoeken voor deze status van de actieve programmacode.

    Visual Studio biedt veel manieren om uw programmacode en uitvoeringsgegevens te observeren, waaronder de volgende vensters:

    • De Aanroepstack toont de geschiedenis van functie-aanroepen en methode-aanroepen door de programmacode.
    • Gedefinieerde variabelen die in scope zijn, worden weergegeven in het venster Autos.
    • De Locals weergave toont alle variabelen die Visual Studio in het huidige bereik (inclusief functies) vindt, zelfs voordat ze in de code zijn gedefinieerd.

    Als u de volledige lijst met beschikbare vensters en acties wilt bekijken, selecteert u Foutopsporing>Windows.

    U kunt het Foutopsporingsprogramma vensters openen om uw programmastatus weer te geven wanneer er een onderbrekingspunt wordt aangetroffen:

    Schermopname van de foutopsporingsprogrammavensters waarin de programmastatus wordt weergegeven wanneer Visual Studio stopt bij een ingesteld onderbrekingspunt.

Gebruik debuggeracties

Wanneer Visual Studio stopt met het uitvoeren van code op een onderbrekingspunt, zijn er verschillende opdrachten die u kunt gebruiken om uw code te doorlopen of codeblokken uit te voeren voordat u de code opnieuw onderbreekt. De opdrachten zijn op een paar plaatsen beschikbaar in Visual Studio, waaronder de werkbalk Foutopsporingsprogramma, het Menu Fouten opsporen, het snelmenu met de rechtermuisknop in de code-editor en via sneltoetsen.

De werkbalk bovenaan het Visual Studio-venster biedt snelle toegang tot de meest voorkomende foutopsporingsopdrachten.

Schermopname van de Debugger-werkbalk in Visual Studio.

De volgende tabel bevat een overzicht van deze opdrachten, zoals deze van links naar rechts op de werkbalk worden weergegeven:

Actie Snelkoppeling Beschrijving
Doorgaan F5 Voer code uit totdat u het volgende onderbrekingspunt bereikt of totdat het programma is voltooid.
Alles verbreken Ctrl+Alt+Break Pauzeer een langlopend programma.
foutopsporing stoppen Shift+F5 Stop de toepassing op het huidige punt en verlaat de Debugger.
opnieuw opstarten Ctrl+Shift+F5 Stop het programma op het huidige punt en start de uitvoering van het programma opnieuw vanaf het begin in het Foutopsporingsprogramma.
Volgende uitdrukking weergeven Alt++\ Ga terug naar de volgende instructie die u in de code wilt uitvoeren. Met deze opdracht kunt u de plaats in uw code vinden waar het foutopsporingsprogramma is gestopt.
Stap in F11 Voer de volgende instructie uit en stop. Als de volgende instructie een aanroep van een functie is, stapt de Debugger in de functie en stopt bij de eerste regel.
Stap over F10 Voer de volgende instructie uit, inclusief het aanroepen van een functie (alle bijbehorende code uitvoeren) en het toepassen van een retourwaarde. Met deze opdracht kunt u eenvoudig functies overslaan die u niet nodig hebt om fouten op te sporen.
uitstappen Shift+F11 Voer de code uit tot het einde van de huidige functie en stap vervolgens naar de aanroepinstructie en pauzeer. Deze opdracht is handig wanneer u geen fouten hoeft op te sporen in de rest van de huidige functie.

Volg deze stappen om te werken met Debugger acties in uw Python-code:

  1. De lusinstructie for overslaan met behulp van de actie Stap over.

    Een stap uitvoeren zorgt ervoor dat de debugger de huidige regel van code uitvoert, inclusief aangeroepen functies, en onmiddellijk pauzeert. Nadat u een stap hebt uitgevoerd, ziet u dat de variabele i nu is gedefinieerd in de Locals en Autos vensters.

  2. "Step Over" de volgende coderegel, waarmee de make_dot_string functie wordt aangeroepen.

    In dit geval zorgt Stap over ervoor dat het foutopsporingsprogramma de volledige make_dot_string functie uitvoert en pauzeert nadat de functie is voltooid. De debugger stopt niet in de functie, tenzij daar een apart breakpoint bestaat.

  3. Ga nog een paar keer door met het doorlopen van de code en bekijk hoe de waarden in de Locals of Automatisch venster veranderen.

  4. Dubbelklik in het venster Locals of Autos op de kolom Waarde om de waarde te bewerken. In dit voorbeeld wijzigt u de waarde voor de variabele s in 'Hello, Python Application'. Plaats de waarde tussen enkele aanhalingstekens. Selecteer Voer of een gebied buiten de waarde in om uw wijzigingen toe te passen.

    Schermopname die laat zien hoe u de waarde voor een variabele wijzigt in het venster Locals tijdens foutopsporing in Visual Studio.

  5. Ga door met het doorlopen van de code met behulp van Stap in totdat de aanroep van de make_dot_string functie wordt uitgevoerd.

    Voor een functie zorgt Stap in ervoor dat de debugger zowel de functie aanroept en de functiecode instapt. Wanneer het foutopsporingsproces zich in een functie bevindt, kunt u de lokale variabelen onderzoeken en de bijbehorende code specifiek doorlopen. In dit voorbeeld wordt de actie Stap in verplaatst naar de functie make_dot_string.

  6. Ga door met stappen met en stap in totdat de teruggave van de make_dot_string functie plaatsvindt.

    Wanneer u het einde van de make_dot_string functiecode bereikt, retourneert de volgende stap het *Foutopsporingsprogramma naar de for lus met de nieuwe retourwaarde in de s variabele.

    Wanneer u weer naar de print instructie stapt, ziet u dat de stap in actie op de print instructie niet in die functie wordt ingevoerd. Dit gedrag komt doordat de print functie niet is geschreven in Python. Het is systeemeigen code in de Python-runtime.

  7. Ga verder met het gebruik van Stap in totdat u weer halverwege de functie make_dot_string bent. Gebruik vervolgens Stap Uit, en u ziet dat de Debugger terugkeert naar de for lus.

    Met Step Outvoert de Debugger de rest van de functie uit en pauzeert dan automatisch in de aanroepende code. Deze actie is handig nadat u een deel van een lange functie hebt doorlopen en u de observatie van de functie wilt beƫindigen. Uitstappen doorloopt de resterende code of totdat er een expliciet breekpunt in de aanroepende code is ingesteld.

  8. Ga door met het uitvoeren van het programma totdat het volgende onderbrekingspunt is bereikt met behulp van Doorgaan (F5). Omdat u een onderbrekingspunt hebt ingesteld in de for lus, breekt u de volgende iteratie uit.

    U kunt controleren of het programma blijft worden uitgevoerd door de veranderende waarde voor de s variabele in het venster Locals te observeren.

Onderbrekingspuntvoorwaarden gebruiken

Het doorlopen van honderden iteraties van een lus kan tijdrovend zijn, zodat u in Visual Studio een voorwaarde kunt toevoegen aan een onderbrekingspunt. Wanneer u een voorwaarde voor een onderbrekingspunt instelt, onderbreekt het foutopsporingsprogramma het programma alleen op het onderbrekingspunt wanneer aan de voorwaarde is voldaan.

De volgende stappen laten zien hoe u een onderbrekingspuntvoorwaarde op de instructie for lus definieert, zodat het foutopsporingsprogramma alleen wordt onderbroken wanneer de waarde van de i variabele groter is dan 1600:

  1. Als u de onderbrekingspuntvoorwaarde wilt instellen, klikt u met de rechtermuisknop op de rode punt van het onderbrekingspunt en selecteert u Voorwaarden of gebruikt u de sneltoets Alt+F9>C.

  2. In het popupvenster Instellingen voor onderbrekingspunt configureer je de volgende instellingen om de voorwaardein te stellen.

    1. Stel het voorwaardetype in op voorwaardelijke expressie.

    2. Definieer de evaluatie van de voorwaarde waarvoor waar is.

    3. Voer i > 1600 in als voorwaardewaarde.

    4. Selecteer . Sluit.

    Schermopname die laat zien hoe u een voorwaardelijk onderbrekingspunt instelt in het foutopsporingsprogramma in Visual Studio.

  3. Selecteer F5- om door te gaan met foutopsporing en uitvoering van programma's. U ziet dat het programma veel iteraties uitvoert voordat het het voorwaardelijke onderbrekingspunt bereikt.

    U kunt controleren of het Foutopsporingsprogramma de uitvoering van het programma correct onderbreekt wanneer het voorwaardelijke onderbrekingspunt wordt bereikt. Wanneer aan de voorwaarde wordt voldaan, wordt in het venster Locals de waarde van de variabele i weergegeven als 1608.

  4. Als u het programma tot voltooiing wilt uitvoeren, kunt u het onderbrekingspunt uitschakelen en doorgaan met de uitvoering van het programma.

    1. Beweeg de muisaanwijzer over de rode stip en selecteer uitschakelen of klik met de rechtermuisknop op de rode stip en selecteer Onderbrekingspunt uitschakelen.

    2. Selecteer Doorgaan (of druk op F5) om het programma uit te voeren.

    Wanneer het programma afloopt, stopt Visual Studio de foutopsporingssessie en keert terug naar de bewerkingsmodus.

    U kunt ook een onderbrekingspunt verwijderen. Selecteer de rode stip of klik met de rechtermuisknop op de punt en selecteer Onderbrekingspunt verwijderen. Met deze actie worden ook eventuele gedefinieerde voorwaarden verwijderd.

Tip

In sommige situaties, zoals een fout bij het starten van de Python-interpreter zelf, kan het Python-uitvoervenster onmiddellijk worden gesloten nadat het programma is voltooid, zonder te pauzeren of de Druk op een willekeurige toets om door te gaan prompt weer te geven. Als u een pauze en prompt wilt afdwingen, voegt u het argument -i toe aan het Interpreter Argumenten>uitvoeren veld op het tabblad Debuggen. Dit argument zet de Python-interpreter in de interactieve modus nadat de code is uitgevoerd. Het programma wacht totdat u Ctrl+Z+Enter- selecteert om het venster te sluiten.

Volgende stap