GDB - Símbolos de depuración

UN Debugging Symbol Tableasigna instrucciones en el programa binario compilado a su correspondiente variable, función o línea en el código fuente. Este mapeo podría ser algo como:

  • Instrucción del programa ⇒ nombre del elemento, tipo de elemento, archivo original, número de línea definido.

Las tablas de símbolos se pueden incrustar en el programa o almacenar como un archivo separado. Entonces, si planea depurar su programa, entonces es necesario que cree una tabla de símbolos que tendrá la información requerida para depurar el programa.

Podemos inferir los siguientes hechos sobre las tablas de símbolos:

  • Una tabla de símbolos funciona para una versión particular del programa; si el programa cambia, se debe crear una nueva tabla.

  • Las compilaciones de depuración suelen ser más grandes y más lentas que las compilaciones minoristas (no depuradas); Las compilaciones de depuración contienen la tabla de símbolos y otra información auxiliar.

  • Si desea depurar un programa binario que no compiló usted mismo, debe obtener las tablas de símbolos del autor.

Para que GDB pueda leer toda esa información línea por línea de la tabla de símbolos, necesitamos compilarla de manera un poco diferente. Normalmente compilamos nuestros programas como:

gcc hello.cc -o hello

En lugar de hacer esto, necesitamos compilar con el indicador -g como se muestra a continuación:

gcc -g hello.cc -o hello