UC3M

Grado en Ing. Telemática/Sist. Audiovisuales/Sist. de Comunicaciones

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

16.7. Preguntas de autoevaluación

Comprueba con estas preguntas que has entendido cómo funciona el depurador.

  1. Tras crear un fichero ejecutable, ./program, e invocar al depurador con el comando gdb program, quieres ejecutar el programa mediante el depurador. ¿Cuál es el comando correcto?

    • run ó r

    • start ó s

    • continue ó c

  2. Una vez arrancada la ejecución del programa con el depurador, quieres introducir un punto de ruptura en la línea 36 de tu código. ¿Cuál es el comando correcto?

    • l 36

    • b l 36

    • b 36

    • p 36

    • Primero tienes que parar la ejecución para poder introducir cualquier punto de ruptura.

  3. Teniendo en cuenta el siguiente fragmento de código del programa calculate_square.c:

    5  int calculate_square(int n)
    6  {
    7    /* Function to print the square of a number */
    8    int square = 0;
    9    if (n<=250)
    10   {
    11     square = n * n;
    12     printf(''The square of %d is %d \n", n, square);
    13   }
    14   return square;
    15 }
    16 int main(int argc, char **argv)
    17 {
    18   calculate_square(5);
    19   calculate_square(251);
    20   return 0;
    21 }  

    Invocas el depurador, introduces un punto de ruptura en la llamada a la función de la línea 19 y arrancas el programa. El programa se detiene en la línea 19, y quieres entrar dentro de la función calculate_square para ver su funcionamiento cuando el argumento es 251, así es que:

    • Ejecutas c para que el depurador continúe y entre dentro de la función.

    • Ejecutas n para que el depurador continúe y entre dentro de la función.

    • Ejecutas s para que el depurador continúe y entre dentro de la función.

    • Ejecutas c para que el depurador continúe y ejecutas n para que entre dentro de la función.