visual studio simbolos simbolo punto puede para ningun interrupción fuente este encuentra encontrar documento desencadenado depurador código codigo cargado archivo actualmente activará abrir debugging compilation symbols gimp

debugging - simbolos - pdb visual studio



¿Cómo verificar si el programa fue compilado con símbolos de depuración? (2)

Esta pregunta ya tiene una respuesta aquí:

Me gustaría rastrear algunos códigos en GIMP y, por lo tanto, necesito GIMP con símbolos de depuración habilitados. No recuerdo si los he habilitado durante la compilación. ¿Cómo verificar eso sin recompilar el programa?


Cuando objdump --syms comando objdump --syms , veo mucho más que " sin símbolos " en la salida (al menos, para objetos kernel ).

Para verificar si hay información de depuración dentro del objeto kernel, puede agregar lo siguiente al final del comando objdump : | grep debug | grep debug

Si se encuentra esta cadena, sabrá que el objeto kernel contiene información de depuración. Si no, entonces es un objeto kernel "limpio".

Ejemplo de un módulo kernel que he compilado sin información de depuración:

geertvc@jimi:~/mystuff/kernels/linux-3.12.6$ objdump --syms ./modules/lib/modules/3.12.6/kernel/drivers/i2c/busses/i2c-at91.ko | grep debug

Ejemplo de ese mismo módulo kernel que he compilado con información de depuración:

geertvc@jimi:~/mystuff/kernels/linux-3.12.6$ objdump --syms ./modules/lib/modules/3.12.6/kernel/drivers/i2c/busses/i2c-at91.ko | grep debug 00000000 l d .debug_frame 00000000 .debug_frame 00000000 l d .debug_info 00000000 .debug_info 00000000 l d .debug_abbrev 00000000 .debug_abbrev 00000000 l d .debug_loc 00000000 .debug_loc 00000000 l d .debug_aranges 00000000 .debug_aranges 00000000 l d .debug_ranges 00000000 .debug_ranges 00000000 l d .debug_line 00000000 .debug_line 00000000 l d .debug_str 00000000 .debug_str 00000010 l .debug_frame 00000000 $d

Como puede ver, el primer resultado no devuelve nada, mientras que el segundo resultado devuelve líneas con debug .

Nota: en mi caso, el comando de file me devolvió "no eliminado" tanto en caso de depuración como de no depuración. Sin embargo, la diferencia en el tamaño del objeto kernel fue notable:

  • aprox. 16k sin información de depuración
  • aprox. 137k con información de depuración

Claramente, la última versión tenía información de depuración dentro.

Mi pregunta: ¿el comando de file confiable en tales casos? Por lo que he experimentado, confío en objdump --syms ... | grep debug objdump --syms ... | grep debug


Puedes usar file y objdump en Linux. En particular, puede ver si el archivo dice "pelado" o "no pelado", y si objdump --syms algo útil (para mí, dice "sin símbolos" para una compilación normal).