Acasă Finanțe personale Oprirea la și reluarea de la un breakpoint - dummies

Oprirea la și reluarea de la un breakpoint - dummies

Cuprins:

Video: Filme de actiune 2016 - filme noi 2016 hd subtitrate in romana2017 2024

Video: Filme de actiune 2016 - filme noi 2016 hd subtitrate in romana2017 2024
Anonim

Învățarea de a utiliza depanatorul este unul dintre cele mai importante lucruri pe care le puteți face pentru a vă dezvolta jocul C ++. Ce urmează sunt pașii necesari pentru a stabili un punct de întrerupere, opriți programul, examinați câteva variabile și reluați programul.

Începând cu primăvara anului 2014, Codul:: Blocurile nu se integrează cu aplicația de depanare pentru Mac, deci dacă sunteți un utilizator Mac, aceste exemple ar putea să nu funcționeze pentru dvs.

Ce este un program de depanare?

Înainte de a merge mai departe, vă poate ajuta dacă înțelegeți ce este un program de depanare. Un debugger este un program separat care vă permite să vă controlați programul de execuție. În mod specific, vă permite să opriți executarea programului pe anumite linii de cod, să examinați valoarea variabilelor, să modificați valoarea variabilelor și să reluați execuția programului.

Debuggerul GNU are o interfață de linie de comandă care este atât de greu de memorat și greu de utilizat (o combinație câștigătoare dacă ați auzit vreodată). Din fericire, Cod:: Blocuri oferă o interfață grafică aproape fără întrerupere a depanatorului GNU. În timp ce faceți clic pe ferestrele editorului și activați meniurile drop-down, Cod:: Blocuri trimite comenzi criptice la depanator în fundal și apoi interpretează și afișează grafic rezultatele. Nu este grozav atunci când două programe chit-chat în fundal pentru a vă salva de lucru?

Cea mai bună modalitate de a afla despre depanator este să urmați doar aceste exemple.

Configurarea programului pentru a utiliza programul de depanare

Aveți nevoie să construiți programul folosind setări speciale de compilatoare dacă intenționați să-l executați sub controlul depanatorului. Cel mai simplu mod de a face acest lucru este chiar la început, când creați pentru prima dată proiectul. După ce ați specificat că doriți să creați o aplicație Consola și să furnizați numele programului, Cod:: Blocuri vă va întreba dacă doriți să vă construiți programul în configurație Debug, Release configuration sau ambele, după cum se arată în Figura 1 Asigurați-vă că configurarea Debug este activată.

Figura 1: Expertul Proiect vă oferă opțiunea de a specifica o configurație Debug când creați proiectul.

Un program în configurația Debug include o mulțime de informații suplimentare pe care debuggerul are nevoie pentru a-și face magia. Această informație include

  • Adresa fiecărui rând al codului sursă C ++

  • Adresa fiecărei variabile

  • Numele și structura fiecărei clase în programul dvs.

Toate aceste informații debugger adaugă mult programul executabil - sute de kilobyte sau mai mult. Acest spațiu este total inutil dacă nu intenționați să rulați programul sub controlul depanatorului, astfel încât Cod:: Blocurile vă oferă opțiunea de a construi executabile fără această informație în ceea ce este cunoscut sub numele de Configurație de lansare.Programele de lansare sunt mai mici, se încarcă mai repede și chiar se execută mai repede.

Dacă activați configurațiile Debug și Release în proiectul dvs., atunci veți alege să construiți în timp ce tip de executabil pe care încercați să-l construiți.

Există două diferențe între configurațiile Debug și Release:

  • Configurația Debug include opțiunea de compilatoare -g .

    Această opțiune indică compilatorului să includă informații despre simbol în executabilul final. Acestea sunt lucrurile menționate mai sus - adresa fiecărei linii de cod și a fiecărei variabile, precum și o descriere a fiecărei clase utilizate în programul dvs.

  • Optimizatorul de coduri este dezactivat în configurația Debug și este pornit în configurația Release.

    Optimizatorul de cod GNU generează programe care se execută mai repede, dar se face prin mutarea instrucțiunilor în moduri care pot fi destul de confuze atunci când depanați programul. Configurația de lansare nu include comutatorul -g și permite un anumit nivel de optimizare prin includerea comutatorului -O .

Asigurați-vă că construiți în prezent lansarea Debug selectând Build → Select Target → Debug, așa cum se arată în Figura 2.

Figura 2: Trebuie să vă asigurați că construiți executabilul debuggable, chiar dacă ați activat Configurarea de depanare când ați creat proiectul.

Refaceți programul selectând Build → Rebuild.

Oprirea la un punct de întrerupere

Pentru a seta un punct de întrerupere, faceți clic pur și simplu în zona de lângă dreapta numărului de linie - această zonă este cunoscută în Cod:: Blochează parlamentul ca fiind . Nu numai că linia apare într-o altă culoare, indicând faptul că editorul a selectat-o, dar un mic semn de oprire apare în jgheab, așa cum se arată în Figura 3. Acesta este un indiciu că un punct de întrerupere a fost setat la linia 11.

Figura 3: Cod:: Blocurile utilizează un semn de stop drăguț pentru a indica când este setat un punct de întrerupere.

Puteți seta câte puncte de întrerupere pe care le doriți la un moment dat, dar acest punct de întrerupere va fi bine pentru acest exemplu.

Aici puteți porni programul utilizând opțiunea Debug → Start / Continue din figura 4.

Figura 4: Execuția (sau reluarea) executării programului folosind opțiunea de meniu Debug-> Start / Continue.

Programul începe executarea ca normal, dar se oprește aproape imediat, cu o săgeată galbenă mică îndreptată spre Linia 11 așa cum se arată în Figura 5. În plus, apare o fereastră goală care ar conține în mod normal o ieșire program. Nimic nu apare în ieșirea programului, deoarece linia 11 nu a fost încă executată.

Figura 5: Execuția programului se oprește de îndată ce programul întâlnește un punct de întrerupere.

Wow! Asta e tare.

Reluarea executării unui program

Aveți posibilitatea să setați un breakpoint pe următoarea linie și să selectați Debug → Start / Continue pentru a continua executarea programului la următoarea linie dacă doriți; cu toate acestea, deoarece acesta este un lucru obișnuit de făcut, Cod:: Blocks oferă opțiunea Debug → Next Line, ceea ce înseamnă "Executați programul la următoarea linie."

Acest lucru face ca programul să clipească instantaneu, deoarece comanda trece la program suficient de lungă pentru a executa linia 11 înainte de a opri din nou, așa cum se arată în figura 6.

Figura 6: Executarea comenzii liniei următoare depanatorul pentru a executa o linie în program.

Puteți repeta acest proces ori de câte ori doriți, într-un mod eficient și simplu, prin intermediul programului.

Atunci când ajungeți la un apel pentru funcții, linia următoare rămâne în funcția curentă, executând întreaga funcție ca și cum ar fi o singură linie (care este la acest nivel). Dacă doriți să treceți controlul la apelul funcției, selectați Debug → Step Into. Aceasta funcționează numai pentru funcțiile pentru care aveți codul sursă - aceasta nu funcționează foarte bine pentru funcțiile bibliotecii C ++.

De fiecare dată când te-ai săturat să faci un singur pas, poți să anulați programul selectând Debug → Stop Debugger. Nu numai că acest lucru se oprește debugger, dar se oprește programul dvs., de asemenea.

Examinarea variabilelor

O singură trecere prin programul dvs. este o modalitate excelentă de a vă simți unde se desfășoară programul dvs., dar poate fi dificil să înțelegeți de ce, dacă nu puteți examina variabilele pe care le utilizează pentru a lua decizii. De exemplu, când parcurgeți singur programul de exemplu, este posibil să observați că controlul nu intră deloc în buclele pentru . De ce este asta?

Opriți programul selectând Debug → Stop Debugger sau apăsând Shift + F8 și reporniți selectând Debug → Start / Continue sau apăsând F8. În mod unic, selectați Debug → Următorul rând sau apăsând F7 până când execuția ajunge la începutul buclă pentru .

De această dată, asigurați-vă că fereastra Watch este vizibilă selectând Debug → Windows Debugging → Ceasuri. O fereastră ca cea din Figura 7 apare afișând valorile argumentelor și ale oricăror variabile locale. Observați că nNumberofArgs este 1, doar numele programului în sine. Deoarece încep cu o valoare de 1, bucla nu va fi niciodată executată. Adăugați variabilele de ceas pszArgs [0] și pszArgs [1] pentru a vedea ce conțin: numele programului și numele null. Aha! Programul nu are argumente pentru a repeta.

Figura 7: Fereastra de vizionare permite programatorului să vizualizeze valoarea variabilelor.

Puteți modifica argumentele în program selectând Project (Proiect) → Set Arguments (Programe). În această fereastră, puteți pune orice argumente doriți.

Observați că fereastra Watch arată numele variabilei, tipul acesteia și valoarea acesteia. Nu puteți schimba tipul, dar puteți să-i modificați valoarea din această fereastră, dacă doriți. Schimbarea valorii nNumberofArgs nu este foarte utilă, dar schimbarea uneori a valorii unei variabile îmi permite să forțez execuția pe o altă cale doar pentru a vedea ce s-ar putea întâmpla.

Continuarea unui program oprit

Un truc pe care trebuie să-l amintiți este că uneori poate deveni confuz în ceea ce privește motivul pentru care programul este oprit. Nu toate programele care sunt oprite sunt sub controlul depanatorului. Uneori așteaptă o intrare de la utilizator.

Pentru a vedea acest efect, programul PrintArgs cu un singur pas până când controlul ajunge la linia 26.Când selectați Linia următoare, cursorul dispare așa cum se arată în figura 8. Gone este săgeata galbenă plăcută care vă amintește de locul în care vă aflați în program. Ce s-a întâmplat?

Figura 8: Controlul pare să dispară atunci când programul așteaptă introducerea de către utilizator.

Ce sa întâmplat este că programul mă așteaptă să apăs pe tasta Enter. În primul rând, trebuie să selectați fereastra programului. Apoi puteți apăsa pe Enter (poate fi necesar să faceți acest lucru de mai multe ori). După ce ați făcut acest lucru, nimic nu pare să se întâmple în fereastra programului deoarece controlul a trecut acum înapoi la depanator în fereastra Cod:: Blocuri. Când selectați din nou această fereastră, veți vedea săgeata galbenă care vă spune că Cod:: Blocurile sunt din nou în control.

Când executați programul în cadrul aplicației de depanare și controlul pare să dispară, programul poate așteaptă intrarea de la tastatură. Treceți la fereastra programului pentru a vedea dacă este cazul. Dacă da, imediat ce introduceți ceva, controlul va reveni la depanator.

Oprirea la și reluarea de la un breakpoint - dummies

Alegerea editorilor

Social Media Design: Twitter Opțiuni imagine - dummy

Social Media Design: Twitter Opțiuni imagine - dummy

Jonglați constrângerile legate de spațiu și modul cel mai bun de a poziționa cele trei imagini separate pe care vi se permite să le utilizați în profilul dvs. Twitter.

Social Media Design: Inspirând exemplele de afaceri pe Facebook - manechine

Social Media Design: Inspirând exemplele de afaceri pe Facebook - manechine

ÎNainte de scufundări în elementele de bază ale proiectării o pagină solidă Facebook, aruncați o privire asupra unor branduri care profită din plin de Facebook cu pagini proprii. Persoanele fizice și organizațiile de la bloggeri la proprietarii de magazine Etsy de la domiciliu la branduri internaționale folosesc Facebook pentru a se conecta cu clienții și fanii existenți, precum și cu potențialul lor ...

Social Media Optimization: Publicarea Tweets automat la profilul dvs. Facebook - dummies

Social Media Optimization: Publicarea Tweets automat la profilul dvs. Facebook - dummies

Lucrurile noi pe care să le postați pe Facebook pot fi o adevărată corvoadă. Din fericire, există un truc pe care îl puteți optimiza pe acest site media social. Dacă puteți atinge postarea încrucișată a conținutului între servicii, vă puteți salva ceva timp. Twitter vă oferă posibilitatea de a vă conecta profilul cu alte servicii. Există, ...

Alegerea editorilor

Cum se verifică performanța sistemului cu AWS - dummies

Cum se verifică performanța sistemului cu AWS - dummies

AWS (Amazon Web Services) metode pentru monitorizarea serviciilor specifice AWS. Cu toate acestea, este posibil să aveți probleme de performanță a sistemului sau probleme de aplicare non-AWS care trebuie abordate, ceea ce înseamnă că aveți instrumente care pot funcționa în afara AWS. Pachetul de grupuri de instrumente de performanță conține un număr de instrumente specifice pentru realizarea acestei sarcini ...

Cum să alegeți serviciile AWS de care aveți nevoie - dummies

Cum să alegeți serviciile AWS de care aveți nevoie - dummies

Amintiți-vă că aveți doar 12 luni de libertate proces în care să se ia decizii privind serviciile AWS (Servicii Amazon Web) pe care să le utilizați în afacerea dvs. Douăsprezece luni pot părea mult timp, dar veți descoperi că se evaporă înaintea ochilor dvs. în timp ce încercați să vă jonglați responsabilitățile zilnice, întâlnirile ...

Probleme de securitate aWS - dummy

Probleme de securitate aWS - dummy

Pentru a utiliza AWS (Amazon Web Services) cale. Administratorii și profesioniștii în domeniul securității se pot răzbuna rapid, încercând să păstreze aceste computere interconectate în siguranță, dar aceasta face parte din descrierea postului. Trebuie să urmați cele mai bune practici în securizarea sistemelor informatice, a datelor pe care le conțin, ...

Alegerea editorilor

Cum se asamblează o Circuit de organe color - dummies

Cum se asamblează o Circuit de organe color - dummies

După ce ați strâns toate materialele de care aveți nevoie construiți un organ de culoare, sunteți gata să asamblați proiectul. Vedeți ce aveți nevoie pentru a construi un circuit de organe color. Veți avea nevoie de următoarele instrumente: Sârma de lipit, de preferință cu setări de 20 și 40 W Solder Utilizați lipire mai groasă pentru firele de tensiune și subțire ...

Construirea unui Circuit Dead-Bug Style - dummies

Construirea unui Circuit Dead-Bug Style - dummies

) Sunt montate cu capul în jos pe placa de circuit imprimat (PC), majoritatea picioarelor lipindu-se în aer! Arata ca multe. . . morți bug-uri! Un alt nume pentru acest tip de construcție este "circuitele de aer", deoarece componentele sunt atașate direct la ...

Aplicarea RFID în lumea reală - dummies

Aplicarea RFID în lumea reală - dummies

Capacitatea de a urmări și de a urmări, de a urmări și de a găsi, peek sunt toate îmbunătățite prin utilizarea RFID. Unii avocați de confidențialitate vă faceți griji că aparatele vor atașa în mod magic etichetele RFID la îmbrăcăminte sau pantofi pe măsură ce vă plimbați prin magazin sau în jurul unui birou, dar acest lucru este foarte puțin probabil. Limitele ...