GDB Flashcards
Breakpoint i watchpoint i primer kada je watchpoint bolji
Definisanje break point-a je naredbom:
break ime_klase::ime_funkcije.
Ako zelimo da se napravi break point samo ako je neka nasa promenljiva uzela konkretnu vrednost onda moze: break … if prom = vrednost.
Watchpoint prati određeni izraz ili promenljivu i zaustavlja izvršavanje programa kad god se ta vrednost promeni.
Kada je watchpoint bolji:
- Promene u promenljivama: Ako želite pratiti kada se određena promenljiva menja, watchpoint je bolji alat.
- Specifični uslovi: Kada želite da se program zaustavi samo ako se određeni uslovi zadovolje (npr. vrednost promenljive postane veća od određene granice), watchpoint vam omogućava postavljanje takvih specifičnih uslova.
- Optimizacija performansi: Ako imate veliki kod s puno breakpointa, a zanima vas samo promena određenih promenljivih, watchpoint može biti efikasniji jer će vas obavestiti samo o relevantnim promenama
Break point na svakoj funkciji koja zadovoljava neki regularni izraz?
rbreak ime_klase::.* (uzima sve clanske funkcije date klase)
Kako mozemo da koristimo breakpoint-e samo za printf a ne da nam svaki put zaustavlja program?
set logging redirect on
set logging on
Sada umesto na out on ce da printuje u log fajl
I onda da bismo definisali svaki put sta se radi na breakpointovima
commands
bt 3
print this
continue
end
Sta je core file?
Core file je fajl koji sadrzi trenutno stanje programa kada je program pukao
Kako se prilikom debugginga vracamo unazad?
Potrebno je “ukljuciti snimanje” komandom:
target record-full
zatim definisemo breakpoint kada cemo da zavrsimo sa snimanjem:
break ime_klase::ime_fje