2012-03-21 9 views
12

Estoy buscando configurar la ruta para el código fuente cuando se depura con gdb. Elegí hacer eso con un archivo .gdbinit.¿Cómo acceder a las variables de entorno dentro de .gdbinit y dentro de gdb?

Básicamente, contiene un comando:

directory="/path/to/src". 

Sin embargo, me gustaría ser capaz de especificar que comando como:

directory="$SOURCESROOT/src" 

donde SOURCESROOT es una variable de entorno. Y, si es posible, también puede hacerlo dentro de la sesión de debugging gdb, ingresando directory=$SOURCESROOT/folder.

Básicamente, estoy buscando acceder dentro de gdb (o dentro de .gdbinit) las variables de entorno.

Pero no el entorno del debugee (set env y demás), sino el entorno del gdb mismo (es decir, del prompt bash donde escribo en primer lugar el "programa gdb").

Mientras se escribe shell $SOURCESROOT dentro de la sesión gdb muestra el contenido de la variable de entorno, esto es bastante inútil, ya que no puedo ingresar: directory=shell $SOURCESROOT.

PD: Alguien encontró una configuración ideal para Linux (Debian) para descargar las fuentes con "apt-get source", actualizarlas con algún tipo de comando utópico "apt-get update" e instalarlas para que gdb encontrará automáticamente estas fuentes?

Respuesta

16

No importa, encontré cómo hacerlo mediante el uso de scripts de Python.

Mi archivo .gdbinit es ahora:

python 
import os 
gdb.execute('directory' + os.environ['SOURCES'] + '/package_name/src') 
end 

show directories 
1

Si no quiere involucrar pitón, entonces esto podría funcionar?

"mostrar ambiente [code] Imprimir el valor de nombre_var variable de entorno que debe darse a su programa cuando se inicia. Si no se proporciona nombre_var, imprimir los nombres y valores de todas las variables de entorno que debe darse a su programa . Puede abreviar el entorno como env ".

ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_19.html

Tal vez podría ser utilizado para las condiciones así:

https://www.adacore.com/gems/gem-119-gdb-scripting-part-1

Cuestiones relacionadas