Onion Information
Python modul PyCUDA -- otklanjanje grešaka i curenja memorije - GASERI
Jednostavno otklanjanje grešaka ("debuggiranje") smo već radili ispisivanjem vrijednosti varijabli korištenjem funkcije printf(). Sofisticiraniji način za istu stvar je korištenjeme makro naredbe, primjerice INFUNIRI_DEBUG na nači...
Onion Details
Page Clicks: 0
First Seen: 03/15/2024
Last Indexed: 09/18/2024
Onion Content
Python modul PyCUDA: otklanjanje grešaka i curenja memorije - Jednostavno otklanjanje grešaka ("debuggiranje") smo već radili ispisivanjem vrijednosti varijabli korištenjem funkcije printf() . Sofisticiraniji način za istu stvar je korištenjeme makro naredbe, primjerice INFUNIRI_DEBUG na način - Prednost ovog pristupa je što kod završne verzije alata nije potrebno brisati čitav niz poziva funkcije printf() , već je dovoljno maknuti ili zakomentirati liniju #define INFUNIRI_DEBUG . Naime, to će učiniti da sve makro naredbe #ifdef INFUNIRI_DEBUG vrate false , i do prevođenja koda koji sadrži printf() neće ni doći. Program za otklanjanje grešaka - Podsjetnik: prevođenje C++ programa - Primjerice, uzmemo li jednostavan C++ program nazvan program1.cpp čiji je kod oblika: Prevođenje i pokretanje izvodimo na način - Rad s alatom gdb - Program za pronalaženje pogrešaka (engl. debugger ) je alat koji pomaže programeru u pronalaženju semantičkih grešaka u kodu. Sam po sebi, on ne ispravlja kod. Radi tako da pokreće instancu programa u kontroliranom okruženju i time omogućuje programeru da: Koristit ćemo GNU Debugger ( gdb ), koji radi na operacijskim sustavima sličnim Unixu i Windowsima. Nema vlastito grafičko sučelje, ali postoji niz alata koji nude korisniku prijateljsko sučelje (primjerice, ddd te IDE-i kao što su Eclipse i NetBeans ). gdb je simbolički debugger, odnosno radi na razini izvornog koda, pa je sposoban analizirati program na razini programskog jezika (ne samo asemblerskoj). Simbolički debuggeri su specifični za programski jezik s kojim rade i zahtijevaju dodatne informacije (debug simbole) kako bi preslikali asemblerske instrukcije na izvorni kod. Debug simboli proizvode se kod prevođenja programa (primjerice, parametar -g kod gcc -a) i: Debug simboli sadrže informacije o: Dakle, pokretanje pomoću alata gdb vršimo na način - Koristit ćemo iduće naredbe - break -- postavljanje točke prekida izvođenja programa; dvije mogućnosti - run -- pokretanje programa do prvog breakpointa - Zadatak - Unutar funkcije ispis dodajte još jednu promjenu varijabli, a zatim još jedan ispis teksta po vlastitom izboru. Izvršite prevođenje koda s debug simbolima i pokrenite ga u alatu gdb . Specifičnosti alata cuda-gdb - Specifične naredbe alata cuda-gdb su - Modul PyCUDA se može koristiti u kombinaciji s alatom cuda-gdb prema službenim uputama . Iskoristimo primjer koji vrši zbrajanje vektora; alat pokrećemo naredbom - Na primjeru za zbroj vektora isprobajte ovdje navedene specifične naredbe alata cuda-gdb . Otklanjanje curenja memorije - Todo - Ovaj dio treba napisati u cijelosti. Author: Vedran Miletić, Kristijan Lenković