Home
  Software
    funkGen
      Intro

Idioma:
  English

funkGen
  Introducción
  Descargar
  Lista correo
  Historial

Depurar codigos en consola con GNU/GDB

Francisco Llaryora

Abstract: Below I will describe a brief introduction to a very known program: the GDB, this is far from being a complete tutorial on GDB, for further information see other manuals.

Seguramente, si esta leyendo esto, es porque tiene un programa con bugs, compañeros y/o foros no han encontrado el error, no cuenta con otra herramienta, poner 'printf' en el código no ayuda y como frutilla del postre tiene que cumplir un plazo de tiempo. El código con errores es el siguiente:

#include 
#include 

char* strToUpr(char* szCad);

int main(){
    char szCadena[] = "Esto es una cadena";

    printf("%s\n", strToUpr(szCadena));
    printf("%s\n", strToUpr("Esto es otra cadena"));
    return 0;
}

char* strToUpr(char* szCad){
    int i;
    for (i=0; szCad[i]; i++)
       szCad[i] = toupper(szCad[i]);

    return szCad;
}  

Vamos a consola y tipeamos:

gedit &

Pegamos el codigo y guardamos (por ejemplo sample.cpp)

El depurado comienza en la compilada. Es necesario introducir información extra. Sino gdb, no adivina.

Este no es un tutorial de makefile, ni tampoco como compilar. Por eso solo me limito a decirle que debe pasar la opcion '-g' al compilador para cada compilada (sea de tipo '-o' (compilar y linkear) o '-c' (dejar el codigo objeto no linkear)).

Para compilar (y linkear) nuestro codigo:

g++ -g -o erroneo sample.cpp

Es probable que reciba warnigs o 'avisos' al momento de la compilación. El ejecutable se va a llamar erroneo. Ejecutando el programa vera el conocido error de fallo de segmentacion u otro error de memoria.

426


(c) John Coppens ON6JC/LW3HAZ correo