# Проследяване на грешки

### **Проследяване на грешки**﻿

Проследяването на грешки е процес на откриване и коригиране на грешки в програма.

Дебъгерът е мощен инструмент, който  позволява бързо намиране на грешки, като дава представа за вътрешните операции на програмата. Това е възможно посредством спиране на изпълнението и анализиране на състоянието на програмата чрез задълбочено изследване на променливите и как те се променят ред по ред. &#x20;

### Изпълнение на код в режим на отстраняване на грешки

Има няколко начина за стартиране на програмата в режим за отстраняване на грешки:

1.  От менюто Run или като натиснете Shift + F9;\
    \


    <figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FT1NpkA4epjL4ouQzdYcH%2Fimage.png?alt=media&#x26;token=b76a79d5-be52-4e27-9cd6-2656773dfcbb" alt=""><figcaption></figcaption></figure>
2.  От иконата Run в лентата с номерацията на редовете, като изберете опцията Debug;\
    \


    <figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FaC7Tnwq2JZNgjVKF0PJb%2Fimage.png?alt=media&#x26;token=8a8ed8aa-e8d8-4a25-b93b-89131086cf9d" alt=""><figcaption></figcaption></figure>
3.  От контекстното меню\
    \


    <figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FwXGYjhLF5xVxvEn6ZE6m%2Fimage.png?alt=media&#x26;token=9b0ffd69-2845-4427-ae68-b39faa00adb4" alt=""><figcaption></figcaption></figure>

Можете да редактирате конфигурацията за изпълнение, за да добавите опции за виртуална машина или да подадете аргументи на програмата.

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FUSul6Et9SP0Z64Zi0DoZ%2Fimage.png?alt=media&#x26;token=53ac448b-6787-48d5-8141-a192ad2772be" alt=""><figcaption><p>конфигурация за изпълнение</p></figcaption></figure>

### Точки на прекъсване

За да проверим как програмата работи по време на изпълнение, трябва да спрем нейното изпълнение преди заподозрения код. Това става чрез задаване на точки на прекъсване. Точките на прекъсване показват редовете от код, където програмата ще бъде спряна, за да можете да проверите нейното състояние.

За да зададете точка на прекъсване на даден ред, щракнете в областта на лентата с номерацията на редовете или използвайте клавишната комбинация Ctrl+F8 (Win/Linux),  ⌘ F8 (macOS).\
\


<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FbvO6iTe2L0yuZD5GbKua%2Fimage.png?alt=media&#x26;token=99ef570a-13dc-442e-a661-008b25b7bfa6" alt=""><figcaption></figcaption></figure>

При натискане с десен бутон се отваря диалогов прозорец, където може да се зададе условиe кога да спре изпълнението на програмата. Ако условието върне true, избраното действие се изпълнява. В противен случай точката на прекъсване се игнорира.\
\


<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FNku497pcKo0dIHMEBUIw%2Fimage.png?alt=media&#x26;token=686927d0-8ea6-4c38-aa4d-1faf3858afef" alt=""><figcaption></figcaption></figure>

### Прозорец за отстраняване на грешки

Прозорецът за отстраняване на грешки показва важна информация, когато вашето приложение спре изпълнението на точка на прекъсване:

·       Debugger - показва информация за изпълнение на програмата;

·       Console - показва резултата от изпълнението на програмата;

·       Frames - показва реда на изпълнение на командите;

·       Variables - показва състоянието на обектите.

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FzZZGc46hEDdYJojFsTSf%2Fimage.png?alt=media&#x26;token=e044c7f9-8c69-4bd5-8177-451665508f44" alt=""><figcaption></figcaption></figure>

### Постъпково изпълнение на програмата

Има различни начини за навигация в кода в режим на отстраняване на грешки. Например, може да предпочетете да изпълните ред код, без да се интересувате от подробностите на извикваните методи. Или може да предпочетете да видите кои редове код се изпълняват, когато извиквате друг метод от вашето приложение, библиотеки или API. Можете да направите това чрез различните стъпкови действия:

* Step into (F7) – изпълнява текущия ред и ако той съдържа метод, влиза в него;
* Step over (F8) – изпълнява текущия ред, но ако съдържа метод, не влиза в него;
* Force Step Into – позволява да дебъгвате методи, дефинирани в API или библиотеки;
* Step out (Shift - F7) – излиза от текущия метод;
* Drop Frame – позволява  да се върнете назад през изпълнението на код, като изпуснете извикване на метод;
* Run to cursor (Alt+F9) – изпълнението на програмата продължава, докато не се достигне реда, на който е позициониран курсора. &#x20;

### Поставяне на пауза, възобновяване и спиране на дебъгера

Ако изглежда, че приложението ви не реагира, можете да поставите програмата на пауза, за да анализирате къде е блокирал кодът ви.

В прозореца за отстраняване на грешки щракнете върху _Пауза на програмата_ и прозорецът на редактора ще покаже класа и метода, които приложението ви изпълнява в момента – или е блокирано. &#x20;

Можете да възобновите изпълнението на програмата, като щракнете върху _Възобновяване на програмата_ или като използвате клавишната комбинация F9. За да рестартирате програмата в режим на отстраняване на грешки, изберете _Повторно изпълнение_. Можете да спрете отстраняването на грешки във вашата програма по всяко време, като използвате иконата _Stop ._

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FGtFdk5ukFmxf2Y875ZuH%2Fimage.png?alt=media&#x26;token=a22fc478-44ad-465b-82c4-a9750ea5b832" alt=""><figcaption></figcaption></figure>

