Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

425
Vistas
Falta la dirección donde se cargó el nombre de archivo [GDB]

Tengo el siguiente código de muestra

 #include<stdio.h> int main() { int num1, num2; printf("Enter two numbers\n"); scanf("%d",&num1); scanf("%d",&num2); int i; for(i = 0; i < num2; i++) num1 = num1 + num1; printf("Result is %d \n",num1); return 0; }

Compilé este código con la opción -g para gcc.

 gcc -g file.c

Generar archivo de símbolo separado

 objcopy --only-keep-debug a.out a.out.sym

Quitar los símbolos de a.out

 strip -s a.out

Cargue esto a.out en gdb

 gdb a.out

gdb dice "no se encontró información de depuración" bien. Luego uso el comando add-symbol-file en gdb

 (gdb) add-symbol-file a.out.debug [Enter] The address where a.out.debug has been loaded is missing
  • ¿Quiero saber cómo encontrar esta dirección ?
  • ¿Hay algún comando o truco para encontrarlo?
  • Esta dirección representa ¿QUÉ?

Sé que gdb tiene otro archivo de símbolos de comando, pero sobrescribe los símbolos cargados anteriormente. Así que tengo que usar este comando para agregar muchos archivos de símbolos en gdb. mi sistema es de 64 bits con ubuntu LTS 12.04, la versión gdb es 7.4-2012.04, la versión gcc es 4.6.3

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

objcopy --only-keep-debug a.out a.out.sym

Si desea que GDB cargue el a.out.sym automáticamente , siga los pasos descritos aquí (tenga en cuenta en particular que debe realizar el paso "agregar .gnu_debuglink ").

Esta dirección representa QUÉ

La dirección que GDB quiere es la ubicación de la sección .text del binario. Para encontrarlo, use readelf -WS a.out . P.ej

 $ readelf -WS /bin/date There are 28 section headers, starting at offset 0xe350: Section Headers: [Nr] Name Type Address Off Size ES Flg Lk Inf Al [ 0] NULL 0000000000000000 000000 000000 00 0 0 0 [ 1] .interp PROGBITS 0000000000400238 000238 00001c 00 A 0 0 1 ... [13] .text PROGBITS 0000000000401900 001900 0077f8 00 AX 0 0 16

Aquí, desea dar GDB 0x401900 como la dirección de carga.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda