Werken met de foutopsporing in Adobe Flex Builder

Veel Flash-ontwikkelaars gebruiken de klasse Alert voor foutopsporing of traceerinstructies vanwege associaties met Flash. Flex heeft een echte debugger en het is een geweldig hulpmiddel. Ik ga demonstreren hoe ik er grip op kan krijgen in deze tutorial.

Invoering

Compileerfouten zijn eenvoudig te herkennen en op te lossen. Je krijgt een rode stip met een X erin, die je vertelt waar en wat het probleem is.

Runtime-fouten zijn moeilijker te traceren. Debugger helpt ontwikkelaars door runtime-fouten op te sporen, een venster te openen om te zien wat er gebeurt terwijl de applicatie draait, welke waarden zijn ingesteld, wat er gebeurt in een lus, of waarom de if-opdracht niet werkt.

OK, laten we aan de slag gaan - maar voordat we beginnen, zijn hier enkele hulpmiddelen die u nodig hebt:

De foutopsporingsversie van Flash Player

Download deze hier. Tijdens deze tutorial gebruik ik "de Macintosh Flash Player 10 Plugin content debugger (Intel-gebaseerde Macs) (ZIP, 6.03 MB)". Om te testen welke versie van de Flash Player je hebt geïnstalleerd, bekijk deze handige tool van Peter deHaan, die overigens een geweldige blog heeft;)

Bekijk volledige grootte

Adobe Flex Builder 3

Natuurlijk heb je dit nodig. Als je het niet hebt, kun je altijd een gratis exemplaar krijgen:

  • Gratis voor alle onderwijsklanten: https://freeriatools.adobe.com/Flex/
  • Gratis voor werkeloze ontwikkelaars: https://freeriatools.adobe.com/learnFlex/

Andere handige dingen

Voorbeelden met code

  • http://examples.adobe.com/Flex3/componentexplorer/explorer.html
  • http://examples.adobe.com/Flex3/consulting/styleexplorer/Flex3StyleExplorer.html

Adobe® Flex ™ 3.3 Taalreferentie

  • http://livedocs.adobe.com/Flex/3/langref/
  • http://livedocs.adobe.com/Flex/3/html/index.html

Notes

De schermopnamen in deze tut zijn gemaakt op Mac, maar zouden ± hetzelfde moeten zijn op pc. Mijn vensterperspectief kan verschillen van wat u ziet, maar u kunt alle tabbladen onder het venstermenu vinden.

ALS je klaar bent, laten we beginnen!

Stap 1: breekpunten instellen

Ik heb een nieuw Flex-project gemaakt; heel eenvoudig, één paneel met twee knoppen erin. Elke knop roept de klikfunctie; b1_click () voert een lus uit, roept de update_Label () -functie aan. b2_click () maakt een runtime-fout, omdat er geen n_error-waarde bestaat.

/> Bekijk volledige grootte

Wat is een breekpunt? Een onderbrekingspunt wordt ingesteld op een uitvoerbare regel van een programma. Als het breekpunt is ingeschakeld wanneer u foutopsporing uitvoert, wordt de uitvoering onderbroken voordat die regel code wordt uitgevoerd. Als u de toepassing wilt opschorten terwijl deze actief is, moet u een onderbrekingspunt instellen. Het is gemakkelijk om te doen; dubbelklik op de lege ruimte naast het regelnummer. Dubbelklik er nog een keer op om te verwijderen.

Ik heb twee breekpunten ingesteld; regel 10 en 20 (twee blauwe stippen verschijnen in de marge). Als ik op knop 1 klik, stopt deze op regel 10, klikt op knop 2 en stopt op regel 20.

U kunt al uw onderbrekingspunten bekijken op het tabblad "Onderbrekingspunten" en deze kunnen op elk gewenst moment worden toegevoegd of verwijderd. Bovendien kunt u de selectievakjes gebruiken om ze tijdelijk in / uit te schakelen.

Als u wilt bekijken hoe het nummer in de loop van de tijd wordt gewijzigd, markeert u de waarde, klikt u met de rechtermuisknop, selecteert u 'Watch' num '".

"Num" is nu toegevoegd aan het tabblad Expressies.

/> Bekijk volledige grootte

Stap 2: Start Debug Mode en check Some Values

Nu hebben we alles ingesteld, laten we het gedeelte voor foutopsporing starten. Klik op het pictogram dat op een bug lijkt

/> Bekijk volledige grootte

of selecteer het in het menu:

/> Bekijk volledige grootte

Stap 3: App gestart

Terwijl de app wordt gestart, kun je deze in de browser zien, maar er gebeurt niets, wat te doen? Het breekpunt wordt ingesteld binnen de functie, dus we moeten de functie uitvoeren.

/> Bekijk volledige grootte

Stap 4: activeer het breekpunt

Om het onderbrekingspunt te activeren, klikt u op "Knop 1" om de functie b1_click () aan te roepen. De app stopt dan op regel 10 en num is nog steeds 0 omdat de code "num + = 1;" is nog niet uitgevoerd. Kijk naar het tabblad Foutopsporing; sommige pictogrammen lichten op en sommige waarden zijn nu zichtbaar.

/> Bekijk volledige grootte

Stap 5: Tabblad Variabelen

Laten we eerst het tabblad Variabelen bekijken; een paar dingen om op te merken:

  • Deze: bevat alle waarden in de applicatie
  • Evenement: huidige gebeurtenis doorgegeven
  • ik: waarde gedefinieerd in deze functie
/> Bekijk volledige grootte

Open "dit", er verschijnt een lange lijst. De lijst wordt steeds langer en langer dan u zult merken dat uw computer langzamer gaat werken;)

Stap 6: Maak een klikuitdrukking

Omdat ik weet dat ik me wil concentreren op "button2.label", laten we het vinden en klik met de rechtermuisknop om "Watch Expression" te selecteren.

Stap 7: Expression-tabblad

Kijk nu eens op het tabblad Uitdrukkingen, eenvoudig en schoon, precies zoals ik het leuk vind. Twee variabelen waar we nu naar kijken, "num" dat we eerder hebben gemaakt, en "this.button2.label".

Stap 8: Gebruik de stappenregelaars

Laten we nu eens kijken naar de foutopsporingstab. Op dit tabblad ziet u dat sommige pictogrammen nu zijn ingeschakeld, een lijst met functienamen en componentnamen. De onderstaande schermafbeelding laat zien dat we momenteel in de myLoop-functie zitten en dat de component "button2" een actie "klik" uitvoerde om deze functie aan te roepen.

/> Bekijk volledige grootte

Stap 9: De sturingseenheid leren

Die pictogrammen die we hebben opgemerkt (je kunt ze vinden onder menu> uitvoeren), waar zijn ze voor?

/> Bekijk volledige grootte

Wanneer een thread is opgeschort, kunnen de stapbedieningen worden gebruikt om stap voor stap door het programma te lopen.

Vaak kunt u ook snelkoppelingen gebruiken - ze onthouden!

  • Hervatten - F8-toets (niet voor Mac-gebruiker) doorgaan met uitvoeren.
  • Terminate - stop debug-modus, applicatie blijft draaien, maar je kunt niet meer traceren.
  • Stap over - F6-toets, ga naar de volgende regel code.
  • Stap in - F5 toets, als de huidige coderegel een andere functie oproept, kijk dan naar die functie.
  • Step Return - F7-toets, verlaat die functie.

F6 en F8 zullen je beste vrienden zijn, onthoud ze!

Stap 10: De F6-toets gebruiken

Laten we een paar keer op F6 drukken. Houd het tabblad Expressie in de gaten en zie waar de waarde naartoe gaat.

/> Bekijk volledige grootte

Stap 11: Waarde veranderen

Blijf op F6 drukken! De waarde van num is aan het veranderen op het tabblad Uitdrukkingen.

/> Bekijk volledige grootte

Stap 12: De F5-toets gebruiken

Als je lus nooit eindigt, eerder eindigt, of nooit begint, kun je de actie van dichtbij bekijken om te zien wat er gebeurt. Zodra we klaar zijn met de lus, wordt de tweede functie update_Label () aangeroepen. Door op F6 te drukken, kom je er overheen, maar we willen zien wat er gebeurt binnen de update_Label (). Druk op F5 "stap in".

/> Bekijk volledige grootte

Nu bevinden we ons in de update_Label () -functie.

/> Bekijk volledige grootte

Stap 13: De F7-sleutel gebruiken

U kunt op F7 drukken om terug te gaan naar myLoop (). De waarde van het "this.button2.label" is gewijzigd.

/> Bekijk volledige grootte

Stap 14 Gebruik van de F8-toets

Laten we op F8 drukken om de app te hervatten. Het label van de button2 is nu bijgewerkt.

/> Bekijk volledige grootte

Stap 15: Lees de foutmeldingen in Debug Session

OK, laten we nu de bug in de app testen. We weten dat er een fout zit in de functie b2_click (), dus laten we dit in actie zien. Klik op "Knop 2", dit roept de functie b2_click () aan en de app stopt bij de fout.

/> Bekijk volledige grootte

Stap 16: tabblad Foutopsporing

Bekijk het tabblad Foutopsporing. Hierin wordt verteld wat de fout is en wie er belt.

/> Bekijk volledige grootte

Stap 17: Tabblad Console

Dit wordt weergegeven op het tabblad Console. Het geeft u meer informatie over de fout en het regelnummer waar de fout is opgetreden.

/> Bekijk volledige grootte

Stap 18: verander waarden van variabelen

U kunt de waarde van variabelen altijd wijzigen terwijl de toepassing is opgeschort. Als ik bijvoorbeeld button2.label van "num = 10" naar "new label" wil veranderen, doe ik het volgende: zoek eerst de variabele "label", klik met de rechtermuisknop en selecteer Wijzig waarde.

Stap 19: Popup-venster Waarde instellen

Het venster Set Value verschijnt en toont de huidige waarde.

Stap 20: Voer nieuwe waarde in

Ik ga die reeks veranderen in "nieuw label" en druk vervolgens op OK.

Stap 21: Update nieuwe waarde

Nu is op het tabblad Variabelen de nieuwe waarde ingesteld.

Stap 22: Doorgaan met de app

Doorgaan met de applicatie, je ziet dat het label is bijgewerkt.

/> Bekijk volledige grootte

Conclusie

Oké, nu weet je hoe je de debugger moet gebruiken! Hier is een korte samenvatting:

  • Dubbelklik op Een onderbrekingspunt maken.
  • Klik op het foutpictogram om de foutopsporingsmodus te starten.
  • De actie activeren om de toepassing op te schorten.
  • Het tabblad Variabelen vertelt u wat de waarde is.
  • Consoletablet vertelt u wat en waar de fout is (indien aanwezig).
  • Het tabblad Foutopsporing vertelt u wie wie heeft gebeld en wie dat heeft gedaan
  • Wacht vervolgens tot u hem vertelt welke actie moet worden ondernomen.

Als je denkt dat je nu klaar bent om je debugvaardigheden te testen, probeer ze dan in je eigen applicatie!

Nog een laatste tip voor degenen die nieuw zijn bij Flex: vergeet niet om altijd een release-build te exporteren, niet de debug-build die veel groter is. Ik hoop dat je het leuk vond om mee te lezen!