C/C++ projekt v programu NetBeans Tento manuál vznikl za pomocí sebraných lánk na internetu, zabývajících se problematikou nastavení programu NetBeans. Jako vzor poslouºila verze NetBeans 6.8, prakticky odzkou- ²eno na Windows 7 32bit. Instalace programu NetBeans 6.8 Ze zdroje http://java.sun.com/javase/downloads/widget/jdk_netbeans.jsp nainstalujete platformu Java s podporou funkcí pro NetBeans dané verze (sta í za²krtnout souhlas se smluvními podmínkami pro stáhnutí exe instalátoru). Velikost instalátoru je okolo 135 MB, samotná instalace zabere asi 500 MB, na disk se uloºí Java RE a program NetBeans v základní verzi, tedy s pluginy pro Java projekty. Spus te NetBeans. V menu vyberte záloºku Tools a otev ete sekci Plugins. V záloºce Available plugins nalezn te kategorii C++, za²krtn te install a potvr te pod seznamem kliknutím na tla ítko install. Po potvrzení a souhlasu s podmínkami bude do NetBeans naistalovaná podpora pro projekty C/C++. Restart po instalaci je podmínkou. Instalace program pro kompilaci a debug mode Pro kompilaci a debug mode programu je nezbytné naistalovat do po íta e dal²í programy. Existuje celá ada podp rného softwaru, pro na²e ú ely poslouºí programy cygwin, mingw a MSYS [1]. Stáhn te program cygwin ze stránek http://cygwin.com/ do va²eho po íta e. Instalátor setup.exe naleznete v pati ce stránky. Jelikoº se jedná o program, jehoº ásti se spou²tí z p íkazového ádku, velmi doporu uji instalovat do doporu eného adresá e C:/cygwin. Spus te instalátor setup.exe. P i instalaci Vám vysko í chybová hlá²ka o tom, ºe pokud se instalace nepoda í, je pot eba si p e íst dokumentaci na stránkách http://cygwin.com/ a zkusit nainstalovat nov j²í verzi, toto hlá²ení ignorujte. P i výb ru Balík klikn te na Base a Devel tak, aby za poloºkou bylo slovo Install (pon kud zvlá²tn pojatý checkbox, nap. dal²ím kliknutím na Install se balí ky p ejmenují na Reinstall, pak na Uninstall a poté zp t na Default). Klikn te na next. Ignorujte chybové hlá²ení, neod²krtávejte doporu ení a klikn te na next, poté se Vám nainstalují p islu²né balíky programu cygwin (samotná instalace balík zabere na disku asi 1,7 GB). 1
Stáhn te program mingw ze stránek http://mingw.org nebo rovnou z URL http://sourceforge.net/project/downloading.php?group_id=2435&filename=mingw-5.1.4.exe&a=57946486 Spus te instalátor MinGW-5.1.4.exe, na update instalátoru zadejte Ne. Odsouhlaste podmínky a nastavte instalaci pro Current package. P i výb ru komponent za²krtn te navíc g++ compiler, neza²krtávejte mingw make, bude se instalovat separátn v balíku MSYS, který nainstalujeme pozd ji. Op t potvr te cestu C:/MinGW, nem te ji, a nainstalujte MinGW do va²eho po íta e. Stáhn te MSYS z adresy http://downloads.sourceforge.net/mingw/msys-1.0.10.exe Spus te instalátor MSYS-1.0.10, ponechte v²echna výchozí nastavení a spus te instalaci. Instalátor spustí p íkazový ádek, ve kterém potvr te písmenem y (Enter), ºe máte nainstalované MinGW. P i dotazu na cestu k programu zadejte C:/MinGW, je to výchozí cesta k programu, pokud jste jí osobn nep epsali, pak musíte zadat va²i cestu. Program make se úsp ²n doinstaluje do C:/MinGW. Naposled stáhn te balík pro instalaci dbg debuggeru z URL http://sourceforge.net/project/downloading.php?group_id=2435&filename=gdb-6.8-mingw-3.tar.bz2&a=66334146 a nakopírujte (existující p epi²te) celý obsah archívu tak, jak je, do adresá e MinGW ve va²em po íta i (sloºka bin ve struktu e se musí nakopírovat do sloºky bin v MinGW atd.) Nastavte cesty do parametru PATH ve va²em po íta i Otev ete Start -> Control Panel -> System, klikn te v levém menu na Advanced system settings a po otev ení okna klikn te dole vpravo na Environment Variables. V System variables nalezn te parametr Path, ten editujte a na konec textového et zce p idejte za st edník dal²í cesty k soubor m: C:\cygwin\bin; C:\MinGW\bin; 2
Nastavení kompilace a debuggeru v NetBeans Po úsp ²ném nainstalování v²ech pot ebných balík m ºeme p istoupit k samotnému nastavení programu NetBeans. Spus te program NetBeans. Otev ete Tools -> Options a p ejd te na záloºku C/C++. Program automaticky rozpozná nainstalované balí ky a doplní je do p íslu²ných nastavení operací. Po autamatickém vypln ní údaj programem sta í kliknout na OK a informace se uloºí. Nyní je program NetBeans p ipraven pro projekty C/C++. V dal²í kapitole si ukáºeme vytvo ení jednoduchého projektu Hallo World a zkusíme si zkompilovat výstupní soubor. Poté m ºeme p ejít k samotnému debugování projektu. 3
Projekt Hallo World v NetBeans Na p ikladu si ukáºeme jednoduché vytvo ení projektu v C/C++ a jeho zkompilování do výstupního souboru/programu. Otev eme nový projet File -> New Project, nastavíme kategorii C/C++ a projekt C/C++ Application a p ejdeme na dal²í okno Next. Nastavíme Název projektu HalloWorld a jako main le halloworld a dokon íme kliknutím na Finish. 4
Otev el se nám projekt HalloWorld, pokud otev ete podsloºku Source Files v projektu, m ºete otev ít zdrojový kód hlavního souboru halloworld.cpp, kde je p ednastavena kostra programu. Jako p iklad kódu Hallo World nám posta í tato ukázka: #include <stdlib.h> #include <stdio.h> int main(int argc, char** argv) { printf ("Hallo World!!!\n"); return (EXIT_SUCCESS); } Po spu²t ní programu klávesou F6 nebo Run -> Run Main Project se soubor zkompiluje, pod otev eným souborem halloworld.cpp m ºete vid t detaily probíhající kompilace s výsledkem úsp chu/neúsp chu. Po zkompilování se otev e p íkazový ádek a spustí se samotný program, v na²em p ípad se objeví spolu s varováním programu cygwin, ºe cesta k NetBeans není správn napsaná. To je záleºitost Windows a s kompilací nebo spu²t ním programu nemá nic spole ného. V na²em p ípad je správný výstup napsání textu Hallo World!!! spolu s hlá²kou, jak ukon it p íkazový ádek. 5
Práv jste úsp ²n zkompilovali sv j projekt HalloWorld v programu NetBeans. Nyní m ºeme p ejít k samotnému debugování programu. Debugování programu Hallo World v NetBeans Na p íkladu HalloWorld si ukáºeme debugování projektu v NetBeans. Pro vysv tlení jednotlivých úkon trochu roz²í íme základní program HalloWorld o pár instrukcí, abychom mohli ukázat jednotlivé kontrolní ásti debuggeru. Ná² kód m ºe vypadat nap. takto: #include <stdlib.h> #include <stdio.h> int main(int argc, char** argv) { int i = 5; // promenna i ma hodnotu 5 char * a = "Ahoj"; // ukazatel na string hodnotu Ahoj printf ("Startuji projekt Hallo World!!!\n"); for (int c = 0; c < i; c++) { printf ("Spoustim vnitrni cyklus s cislem %d a vypisuji %s\n", c + 1, a); } return (EXIT_SUCCESS); } Nyní m ºeme p ejít k samotnému debugování programu, na kterém si ukáºeme základní informace o probíhajícím procesu spu²t ného projektu. Nebudu zde popisovat jednotlivé kroky programu, jde o jednoduchý zápis a slouºí p edev²ím k ukázání a popsání základních prost edk debuggeru v programu NetBeans. P edpokládá se, ºe vyuºití debuggeru je pro uºivatele, kte í jiº n jakou zku²enost s kódem mají, takºe jednoduchému p íkladu více neº rozumí. 6
Pro zastavení debug módu je nutné v kódu nastavit tzv. breakpoint, jinak debug spustí program, který se po spu²t ní a vykonání jednotlivých p íkaz okamºit ukon í. V na²em p ípad dáme breakpoint na ádek, kde nastavujeme parametr i. Breakpoint nastavíme kliknutím na p íslu²né íslo ádku v programu (pravítko na levé stran zdrojového kódu, kliknutím se ádek za ervená, druhým kliknutím breakpoint odstraníte). Debugger spustíme kombinací kláves Ctrl + F5 nebo kliknutím na Debug -> Debug Main Project. Po spu²t ní by m lo vysko it prázdné okno p íkazového ádku, tentokrát bez ºádného hlá²ení cygwin, a debugger by se m l zastavit práv na námi zadaném breakpointu (nyní je obarven zelen ). 7
Nyní si vysv tlíme jednotlivé poloºky debuggeru pod kódem programu, jsou to: Watches: sledované prom nné. B hem debugování si m ºete nastavit prom nné, které chcete sledovat. Nemusíte potom procházet v²echny prom nné v seznamu a hledat tu správnou, sta í pravým tla ítkem my²i v poli Watches zadat New Watch a napsat do pole jméno parametru, který chceme sledovat. Ten se nám poté zapí²e do seznamu a b hem debugování bude ukazovat aktuální hodnotu t chto parametr. Variables: seznam v²ech prom nných, které se nastavují v programu. V²imn te si, ºe v tomto na²em p ípad se breakpoint zastavil na denování parametru i, který jiº debugger zaznamenal a má ho p i azený v seznamu. P i skoku na dal²í ádek se nám do seznamu p ipí²e i ná² druhý parametr a. Call Stack: tzv. zásobník volání, tj. udrºuje vºdy stálou cestu ve struktu e tak, jak jsme zrovna v programu zano ení. Výhodou je poté zpracování výjimek a error p i lad ní kódu, kde nám tato záloºka ukáºe, kde p esn a odkud byly zavolány jednotlivé funkce i procedury. V na²em p ípad tato záloºka pozbývá významu, ale ve sloºitých programech je nepostradatelným pomocníkem. Breakpoints: seznam na²ich breakpoint tak, jak jsme si je nastavili v programu. Zde je m ºeme i povypínat nebo jen schovat, abychom je mohli vyvolat op t v p ípad pot eby. Output: zde vidíte p esn to, co program práv d lá, zda je zastaven, kdy byl nalezen breakpoint, kdy se program op t rozb hl. Nehledejte zde výstup programu, ten je v ase zobrazován v p íkazovém ádku, který je spu²t n zárove s debuggerem. Zde spí²e naleznete výstupy chyb nebo systémová hlá²ení. Tasks: s debuggerem nemá prakticky nic spole ného, je to klasický TODO LIST, který vyuºijete pro své poznámky v kódu, ke kterým je pot eba se vrátit nebo je opravit. V debuggeru se pohybujeme pomocí tla ítek, která se nám objevila na hlavní li²t pod záloºkami. 8
Základní pohyby v programu jsou: Krok dovnit F7: p ejde na dal²í p íkaz, pokud se jedná o volání funkce, p esune se dovnit dané funkce, kde se zastaví na dal²ím kroku. Tento krok se pouºívá nej ast ji k odlad ní problém v programu. Krok p es F8: p ejde na dal²í p íkaz v po adí, pokud je ale p íkazem volání funkce, funkci automaticky zavolá a vrátí její výsledek. Tento krok je vlastn krok v kódu po jednotlivých ádcích bez procházení vno ených funkcí a metod. Krok ven F7: vystoupí z vno eného objektu do objektu nad azeného, tzn. pokud jsme ve funkci, ukon í jí a p esune nás na místo, odkud byla funkce zavolána. Znovurozb hnutí debuggeru F5: ukon í zastavení programu breakpointem a pokra uje dále, dokud nebude op t zastaven. Pokud nemáme ºádný dal²í breakpoint v po adí, program vede k jeho dokon ení a ukon ení debuggeru. Ukon ení debuggeru Shift + F5: zastavení debuggeru spolu se zastavením programu, program se ukon í, aniº by do²lo k jeho dokon ení. Procházení programu v debug módu, který máme spu²t ný, klávesou F7 se p esuneme na ádek 20. Jsme uvnit cyklu a vypisujeme na výstup p íkazové konzole text. V²imn me si výpisu na seznamu Variables jednotlivých prom nných. Prom nná i typu int má hodnotu 5, prom nná a, která je ukazatel typu char, ukazuje na místo v pam ti 0x4020a0, kde za íná námi uloºený et zec Ahoj. Následuje prom nná, která byla nastavena v cyklu for, s názvem c a po áte ní hodnotou 0. 9
Výstup programu si m ºeme postupn kontrolovat v p íkazovém ádku. Pokud jsme se zastavili na ádku 20, máme na výstupu po áte ní v tu Startuji projekt Hallo World!!!. Pokud klávesou F7 sko íme na dal²í ádek, vypí²e se hlá²ení Spoustim vnitrni cyklus s cislem 1 a vypisuji Ahoj. Na konci tohoto lánku umíme nainstalovat program NetBeans a jeho podp rné balí ky, nastavit kompilátory pro projekty C/C++ a základní ovládání debuggeru NetBeans pro projekty C/C++. NetBeans umí nejen pracovat s tímto programovacím jazykem, jeho domácí p dou je jazyk JAVA, ale také PHP i Ruby. Reference [1] Popis instalace podp rných balík a program byl zpracován podle internetového lánku Conguring the NetBeans IDE for C/C++/Fortran na http://netbeans.org/community/releases/67/cpp-setup-instructions.html 10