I3MUP1+-+Exercise+9.2

=Exercise 9.2 - Debugging=

Formålet med denne øvelse er at få indblik i GDB, DDD og derved give mulighed for debugging run-time på target.

Exercise 1 - Using GDB:
Vi skaber en Segmentation fault i øvelse 7.1 og derefter bruger vi GDB til at finde ud af hvor den opstår. Vi indsætter følgende i Storage.cpp: code format="cpp" int* p = 0; code Herefter indsætter vi et breakpoint indtil et sted hvor vi ved programmet fungere, og herefter rykker vi en linje kode frem. Kompilere programmet med -O0 -g -o Start gdb: gdb ./Applikation Breakpoint indsættes ved at skrive: b (funktionsnavn) eller (fil og linjenummer). Programmet køres indtil breakpoint: r Hvis et breakpoint er indsat kan programmet fortsættes en linje ad gangen med: n
 * p = 1;

Exercise 2 - Using DDD:
DDD minder utrolig meget om gdb da det er et grafisk interface bygget oven på GDB. Programmet startes: sudo ddd Ellers foregår programmet på samme måde, blot mere grafisk.

Exercise 3 - Core Dumps
For at enable Core Dumps skrives følgende: ulimit -c unlimited. (ingen kompilering) Vi skrev følgende: ulitmit -c unlimited make all (kompilering med -O0 -g) ./APP gdb ./APP core

Hvorefter core filen bliver vist