Navigarea codul cu un debugger

Dacă șirul conține un apel de funcție, Step Into comanda executa numai apelul în sine și apoi se oprește executarea primei linii de cod in interiorul functiei. În caz contrar, comanda Step Into execută următoarea declarație.

Dacă șirul conține un apel de funcție, pas peste comanda executa apelul functiei, iar apoi se oprește executarea primei linii de cod în cadrul funcției de apelare. În caz contrar, comanda Step Into execută următoarea declarație.

Comanda Ieșind reia executarea de cod pentru a reveni funcția, și apoi aborts la punctul de întoarcere apelantului.

Atunci când apelați funcțiile imbricate Step Into comandă vă permite să obțineți în cea mai profundă funcția imbricată. Dacă utilizați Step în func1 de apel (Func2 ()). debugger vine în funcția Func2.

Debugger de fapt pas prin declarația de cod, mai degrabă decât linii fizice. De exemplu, în cazul în care propunerea poate fi scrisă într-o singură linie:

În timpul depanare, debugger VS prin aplicarea sau cerere pot fi executate, sau să fie în modul pauză.

Debugger întrerupe executarea cererii atunci când se ajunge la punctul de întrerupere, sau o excepție este aruncată. De asemenea, puteți opri manual executarea în orice moment.

Valori critice pot fi stabilite astfel încât să suspende executarea pe baza unui număr de condiții. A se vedea. Consultați Utilizarea breakpoints. În această secțiune, sunt descrise două modalități principale de suspendare a codului.

Setarea breakpoints în codul

Puncte de întrerupere în Visual Studio oferă o gamă largă de caracteristici suplimentare, cum ar fi puncte de întrerupere condiționate și punctele de urmărire. A se vedea. Consultați Utilizarea breakpoints.

Suspendarea codului manual

Pentru a suspenda executarea următoarea linie de cod disponibile în aplicația se execută, faceți clic pe Debug. Terminați toate apelurile (de pe tastatură: Ctrl + Alt + Break).

Atunci când depanare cu opțiunea de suspendare „Doar codul meu“ se întâmplă pe următoarea linie de cod în proiectul dumneavoastră. Cm. Partition Stepping "doar codul meu".

Când depanarea programelor multiple Se suspendă toate sau implicit breakpoint afectează performanța tuturor depanate. A se vedea. Comportamentul Setarea efectuarea mai multor procese.

Dacă în timpul suspendării codului nu este fișierele sursă și fișiere simbol (PPB-files) corespunzătoare, debugger afișează fișierul sursă al paginii nu este găsit sau caracterul nu este găsit. care va ajuta pentru a găsi fișierele necesare. Cm. Partition Notă fișierele simboluri (.pdb) și fișiere de cod sursă.

Dacă nu aveți acces la un fișier auxiliar, puteți depana instrucțiuni în limbaj de asamblare în fereastra „Dezasamblarea“.

Uneori este necesar să se efectueze executarea într-o locație specificată în cod, și apoi face o oprire. Dacă setați un punct de întrerupere în locația în care doriți să opriți execuția, faceți clic pe Debugging. Start Debugging. Dacă depanare nu este încă pornit, sau depanare. Continuă (în ambele cazuri, puteți apăsa tasta F5). Când debugger cod se oprește la următorul punct de întrerupere. Selectați comanda Debug. Continuă. până când se ajunge la punctul de întrerupere necesară.

Executie până la poziția cursorului

Efectuarea unei funcții în stiva de apel

Selectați funcția în fereastra Call Stack, și faceți clic pe Executare în poziția curentă din meniul contextual. Informații despre urmărirea vizuală a stiva de apel, a se vedea. În articolul Compararea metodelor în vizualizarea stiva de apel atunci când depana.

Efectuarea unei funcții specificată de nume

Puteți instrui debugger la executarea cererii până la momentul până la o anumită funcție. Puteți seta numele sau selectați-l din stiva de apel.

Pentru a specifica un nume de funcție, apoi faceți clic pe Debugging. Crearea unui punct de întrerupere. Întrerupe în funcție. și apoi introduceți numele funcției și alte informații de identificare.

Navigarea codul cu un debugger

În cazul în care o funcție este supraîncărcat sau în mai multe namespace, funcțiile necesare pot fi selectate în caseta de dialog Selectați Breakpoints.

Navigarea codul cu un debugger

Suspendarea execuției în debugger, puteți muta punctul de execuție pentru a seta următoarea declarație pentru a executa cod. Săgeata galbenă de pe marginea textului original sau în „Dezasamblarea“ ia act de locația curentă a operatorului, care trebuie efectuată după cum urmează. Prin mutarea parte a codului de această săgeată poate sări sau du-te înapoi la linia făcut anterior. Acesta poate fi utilizat în astfel de situații apar ca o secțiune de cod trecere care conține o eroare cunoscută.

Navigarea codul cu un debugger

Pentru a seta următoarea declarație pentru a executa, utilizați una dintre următoarele proceduri.

În codul sursă, glisați săgeata galbenă în locul aceluiași fișier sursă, în cazul în care trebuie să specificați următoarea declarație.

În fereastra Source, plasați cursorul pe linia pe care doriți să faceți în continuare, și apoi faceți clic pe Set următoarea declarație din meniul contextual.

În „Dezasamblarea“ muta cursorul la instrucțiunile de asamblare a ceea ce să facă în continuare, și apoi faceți clic pe meniul de comenzi rapide, setați următoarea declarație.

Setarea următoarea declarație va provoca instrucțiunile de program contra merge direct la o nouă locație. Este necesar să se utilizeze această comandă cu precauție.

  • Instrucțiuni între punctele vechi și noi nu sunt îndeplinite.
  • Când vă mutați înapoi la punctul de punere în aplicare, instrucțiuni intermediare nu sunt anulate.
  • Mutarea de lângă operator sau o altă regiune funcție provoacă în mod normal, deteriorarea stiva de apel, provocând o eroare de execuție sau de excepție. Când încercați să mutați următoarea declarație într-o zonă diferită, debugger se deschide o casetă de dialog cu un avertisment și oferă o oportunitate de a anula operația. În Visual Basic, nu puteți muta următoarea declarație într-o zonă sau o funcție diferită.
  • Dacă folosiți aparatul C ++ cod include verificarea de execuție, stabilind următoarea declarație poate provoca o excepție de execuție atunci când ajunge la sfârșitul metodei.
  • În cazul în care operațiunea „Edit și Continue“ comanda specifică următoarea declarație va eșua dacă efectuați modificări la operațiunea „Edit și Continue“ nu va fi în măsură să se aplice imediat. De exemplu, acest lucru poate să apară atunci când se fac modificări în cadrul blocului de captură. Când apare această situație, apare un mesaj de eroare, care indică faptul că operațiunea nu este acceptată.

În cod gestionat, nu puteți muta următoarea declarație în următoarele cazuri:

  • Declarația următoare este într-o metodă diferită de metoda operatorului curent.
  • Debugging a fost lansat prin JIT-depanare.
  • Golește stiva de apel.
  • O excepție este aruncată sau System.StackOverflowException System.Threading.ThreadAbortException.

Nu instalați următoarea declarație în cazul în care aplicația se execută. Pentru a seta declarația următoare, debugger trebuie să fie în modul pauză.

Uneori, în timpul de depanare poate fi necesară pentru a afișa numai codul creat de unul singur, și sări peste alt cod, cum ar fi apelurile de sistem. Pentru a face acest lucru, este posibil să se modul de depanare „Doar codul meu“. În codul „Doar codul meu“ nu este scris de către utilizator, ascunse și nu apare în ferestrele depanator. Când pas cu pas prin execută depanatorul orice cod care nu este scris de către utilizator, dar nu se oprește aici. Cm. Partitionati doar codul meu.

Modul „Doar Codul meu“ nu este acceptată pentru proiectele de dispozitiv.

Dacă ați descărcat simbolurile de depanare pentru codul de sistem și modul deconectat „Doar codul meu“, se poate face pas în sistemul solicită în scopul pas cu pas, prin același mod ca și orice alt apel.

Pentru a încărca simboluri pentru o anumită componentă de sistem în timpul de depanare, urmați acești pași.

Deschideți "Module" (tastatură: Ctrl + Alt + U).

Selectați modulul pentru care doriți să descărcați simbolurile.

Determinați ce module sunt încărcate de simboluri, pot fi de valoare în simbolurile coloanei de stare.

În meniul de comenzi rapide, faceți clic pe Simboluri de încărcare.

În mod implicit, debugger trece proprietățile și operatorii atunci când pas cu pas în cod gestionat. În cele mai multe cazuri, face depanare mai convenabil și eficient. Pentru a activa proprietăți și operatorilor pas cu pas, selectați Debugging. Parametrii și setări. Debugging pe pagină. Proprietăți generale Debifați bypass și operatori (cod numai gestionate).