• 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++) {
    
    • print zeigt einen Wert einer Variable ( print argv[0] )
    • next für den nächsten Befehl im Quellcode - aber nicht in Funktionen
    • step fü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;
    
    • 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++) {
    
    • print zeigt einen Wert einer Variable ( print argv[0] )
    • next für den nächsten Befehl im Quellcode - aber nicht in Funktionen
    • step fü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;
    
    • 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++) {
    
    • print zeigt einen Wert einer Variable ( print argv[0] )
    • next für den nächsten Befehl im Quellcode - aber nicht in Funktionen
    • step fü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;