-
chevron_right
Debuggen
pubsub.movim.eu / devlug • 30 November 2025 edit • 1 minute
Quellcode für ein Demo Programm
#include <stdio.h>
#include <stdlib.h>
int addiere(int a, int b) {
int x = a;
int y = b;
int z = x + y;
return z;
}
void berechne(int argc, char *argv[]) {
int a = 0;
int b = 0;
if (argc > 2) {
a = atoi(argv[1]);
b = atoi(argv[2]);
} else {
printf("a = ");
scanf("%d", &a);
printf("b = ");
scanf("%d", &b);
}
int c = addiere(a, b);
printf("%d + %d = %d\n", a, b, c);
}
int main(int argc, char *argv[]) {
for (int i = 0; i < argc; i++) {
printf("argv[%d] %s\n", i, argv[i]);
}
berechne(argc, argv);
return EXIT_SUCCESS;
}
Compilieren:
gcc -Wall -Werror -Wextra -g -o demo main.c
Debuggen
gdb ./demo
(gdb) break main
Breakpoint 1 at 0x126e: file main.c, line 29.
(gdb) run
Breakpoint 1, main (argc=1, argv=0x7fffffffe1e8) at main.c:29
29 for (int i = 0; i < argc; i++) {
printzeigt einen Wert einer Variable (print argv[0])nextfür den nächsten Befehl im Quellcode - aber nicht in Funktionenstepfür den nächsten Befehl im Quellcode und spring in Funktionen
(gdb) n
32 berechne(argc, argv);
(gdb) s
berechne (argc=1, argv=0x7fffffffe1e8) at main.c:12
12 int a = 0;