es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

GDB muestra “sin información de número de línea” para la dirección señalada por el apuntador de instrucciones.

Mi programa se está bloqueando y este es el mensaje de segfault.

El código es: python3[26871]: segfault en 4cac ip 00007fe49938248a sp 00007fe498a64820 error 4 en libswsscommon.so.0.0.0[7fe499359000+7a000]

La dirección debería ser (IP – dirección cargada de la librería compartida). (7fe49938248a – 7fe499359000) = 0x2948A.

Cuando intento obtener la información, gdb dice ‘no hay información de número de línea’.

Leyendo símbolos desde /usr/lib/x86_64-linux-gnu/libswsscommon.so.0.0.0… Leyendo símbolos desde /usr/lib/debug/.build-id/94/d57d3ce6dd6901ddf7f7d8985a8334c7622fc6.debug… hecho.

(gdb) info line *0x2948A

No hay información de número de línea disponible para la dirección 0x2948a.

¿Cómo es posible? ¿Tiene algo que ver con la dirección de inicio que es mayor que 0x2948A, como se muestra en objdump -f?

objdump -f /usr/lib/x86_64-linux-gnu/libswsscommon.so.0.0.0

/usr/lib/x86_64-linux-gnu/libswsscommon.so.0.0.0: formato de archivo elf64-x86-64
arquitectura: i386:x86-64, flags 0x00000150:

TIENE_SIMBOLOS, DINÁMICO, D_PAGED

dirección de inicio 0x0000000000034d60

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Es posible que no haya información disponible sobre el número de línea para la dirección 0x2948a porque se encuentra en una sección de la biblioteca compartida que no contiene símbolos de depuración o información de código fuente.

    La dirección de inicio mostrada por objdump -f es el punto de entrada de la biblioteca compartida, que es la dirección donde el cargador dinámico comienza a ejecutar el código en la biblioteca. No está directamente relacionada con la dirección del fallo de segmentación.

    Para investigar la causa del fallo de segmentación, uno podría utilizar gdb para depurar el programa y examinar la traza de la pila, los valores de los registros y el contenido de la memoria en el momento del bloqueo. También puede ser útil verificar si existen problemas o errores conocidos relacionados con la biblioteca libswsscommon o la función específica que está causando el bloqueo.

Comments are closed.