Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

420
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda