User Tools

Site Tools


dydaktyka:cprog:learning_resources:debugging

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dydaktyka:cprog:learning_resources:debugging [2016/10/02 20:13]
pkleczek utworzono
— (current)
Line 1: Line 1:
-====== Debuggowanie ====== 
  
-Zdarza się, że choć program nie zawiera błędów składniowych (czyli kompiluje się bez problemów i da się go uruchomić),​ to jednak nie działa zgodnie z oczekiwaniami. W takich sytuacjach do zdiagnozowania przyczyny problemu przydaje się narzędzie o nazwie //​debugger//​. 
- 
-**Debugger** (nazwa czasem tłumaczona na polski jako "​odpluskwiacz"​ :-)) służy do krokowego wykonania programu (czyli instrukcja po instrukcji),​ z możliwością podglądu stanu programu (a więc m.in. wartości zmiennych) po każdym kroku. 
- 
-:!: Debugger nie jest częścią języka -- to narzędzie dostarczane (zazwyczaj) w ramach zintegrowanego środowiska programistycznego. 
- 
-Podczas procesu debuggowania korzysta się z **//​breakpoint//​**-ów,​ które mówią debuggerowi tyle -- "​koniecznie zatrzymaj się tutaj"​. 
- 
-[size=10](Ciekawi Cię, skąd się wzięła nazwa //"​bug"//?​ -- Przeczytaj w wolnej chwili [[https://​en.wikipedia.org/​wiki/​Software_bug#​Etymology|ten]] krótki fragment.)[/​size] 
- 
- 
-===== Debuggowanie w CodeBlocks ===== 
- 
-Do nauki wykorzystaj poniższy kod: 
-<code c> 
-#include <​stdio.h>​ 
-#include <​stdlib.h>​ 
- 
-int main() 
-{ 
-    int i; 
-    int n = 2; 
- 
-    printf("​Zaczynamy...\n"​);​ 
- 
-    for (i = 1; i < 5; i++) { 
-        n = n * n; 
-    } 
- 
-    printf("​Wynik = %d\n", n); 
-} 
-</​code>​ 
- 
-(W razie problemów z uruchomieniem debuggera zaglądnij do [[http://​home.agh.edu.pl/​~pkleczek/​dokuwiki/​doku.php?​id=dydaktyka:​cprog:​faq#​dlaczego_debugger_nie_zatrzymuje_sie_na_breakpointach|FAQ]].) 
- 
-Debuggowanie krok po kroku: 
-  - Aby móc przystąpić do debuggowania,​ dodaj choć jeden breakpoint. W tym celu przejdź do linijki z pierwszą instrukcją ''​printf()''​ i wybierz //Debug -> Toggle breakpoint//​ -- po lewej stronie, koło numeru wiersza, pojawi się czerwona kropka (symbol breakpoint-u). 
-  - Wybierz //Debug -> Start/​Continue//​ -- uruchomiony zostanie proces debuggowania. 
-  - Aby zobaczyć podgląd zmiennych, wybierz //Debug -> Debugging windows -> Watches// 
-  - Przejdź program krok po kroku (//Debug -> Next line//), aż do jego zakończenia,​ i obserwuj zmiany wartości zmiennych oraz zawartości okna konsoli. 
- 
-W oknie //Watches// w pierwszej kolumnie możesz podać w wolnym polu u dołu dowolne poprawne wyrażenie -- jego wartość zostanie automatycznie obliczona zgodnie z bieżącym stanem programu. \\ Dodaj wyrażenie ''​x + 8 < 20''​ i ponownie prześledź zmianę wartości tego wyrażenia podczas kolejnych obiegów pętli. 
- 
-Czasem interesuje Cię podgląd stanu programu tylko w kilku określonych miejscach -- dodaj w nich breakpointy,​ a następnie przechodź pomiędzy nimi (czyli wykonuj automatycznie wszystkie instrukcje pomiędzy obecnym, a kolejnym breakpointem) za pomocą //Debug -> Start/​Continue//​. \\ 
-Dodaj drugi breakpoint przy drugim wywołaniu ''​printf()''​. Uruchom debuggowanie,​ a następnie ponownie wybierz //Debug -> Start/​Continue//​. 
- 
-:!: Pod kątem dalszych studiów na kierunku Inżynieria Biomedyczna zapamiętaj -- **MATLAB także posiada debugger**! :-D 
dydaktyka/cprog/learning_resources/debugging.1475431983.txt.gz · Last modified: 2020/03/25 11:46 (external edit)