Pregunta

Creo que esto puede haber sido preguntado anteriormente pero no puedo encontrar uno que satisfaga mis requisitos

Estoy depurando (de hecho tratando de entender) un proyecto grande al tratar de analizar el flujo de código en varias pruebas. Pero cuando intento establecer puntos de interrupción en algunos archivos, aparece el error "no se encontró ningún archivo de origen llamado nombre de archivo". Así que mi pregunta es:

  1. ¿Puede gdb solo aceptar puntos de interrupción para los archivos de origen donde entra el flujo de código?
  2. ¿Puedo establecer puntos de interrupción en líneas completas de un archivo con algo como b filename: *
  3. ¿Se aceptará un punto de interrupción en el archivo de encabezado ya que los archivos de encabezado solo se agregan en el momento de la compilación?

Cualquier información es más que bienvenida.

Editar
Revisé estos problemas con un código de "hola mundo" y encontré los mismos resultados que he señalado en una de las respuestas. Pero mi problema en el proyecto real aún permanece. Sigo recibiendo el mismo error incluso cuando puedo ver el resultado editado de la misma línea que no se acepta como punto de interrupción.

Editar 2
Lo tengo funcionando pero no entiendo cómo y por qué funciona ...


(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
No source file named /home/neeraj/BTP/trunk/include/header.h:872
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b /home/neeraj/BTP/trunk/src/driver.cpp:2
Breakpoint 1 at 0x806c61a: file ../../../trunk/src/driver.cpp, line 2.
(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
Breakpoint 2 at 0x8052fa0: file ../../../trunk/include/header.h:872, line 872.
(gdb)

¿Alguna información más profunda ...?

¿Fue útil?

Solución

La otra cosa a tener en cuenta además de las bibliotecas compartidas es que los nombres del archivo fuente gdb son relativos al directorio donde se compiló el código. Si no ha compilado con rutas de acceso absolutas, use el comando dir para agregar el directorio de compilación a la lista de lugares donde gdb busca el código fuente.

Y una sugerencia: encuentro que soy mucho más productivo cuando uso el Depurador de visualización de datos (DDD) extremo frontal gráfico a gdb .

Otros consejos

  1. No.
  2. No.
  3. Sí.

Asegúrese de compilar con la opción -g (depuración). Asegúrese de que las rutas de origen están establecidas correctamente. Use el directorio, muestre los directorios y los comandos dir para ver / configurar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top