debugging - online - gdb windows
¿Cómo puedo hacer que gdb guarde el historial de comandos? (2)
¿Cómo puedo configurar gdb
para que guarde el historial de comandos? Al iniciar una nueva sesión de gdb
, me gustaría utilizar las teclas de flecha hacia arriba para acceder a los comandos de las sesiones anteriores.
Respuesta corta: echo ''set history save on'' >> ~/.gdbinit && chmod 600 ~/.gdbinit
Respuesta larga:
El historial de comandos está cubierto en el manual de GDB, 22.3 Historial de comandos . Cree un archivo $HOME/.gdbinit
, cambie sus permisos a 0600
y agregue el siguiente contenido:
set history save on
Puede establecer el número de comandos pasados guardados con lo siguiente. El comando se describe como "Establecer el número de comandos que gdb mantiene en su lista de historial. Este valor predeterminado es el valor de la variable de entorno GDBHISTSIZE, o 256 si esta variable no se establece. Los valores no numéricos de GDBHISTSIZE se ignoran. el tamaño es ilimitado o si GDBHISTSIZE es un número negativo o una cadena vacía, entonces el número de comandos que gdb mantiene en la lista del historial es ilimitado " .
set history size <size>
Un comando relacionado se set history remove-duplicates <count>
. El comando se describe como "Controlar la eliminación de entradas de historial duplicadas en la lista de historial de comandos." Si el conteo no es cero, gdb revisará las últimas entradas del historial de conteos y eliminará la primera entrada que es un duplicado de la entrada actual. agregado a la lista del historial de comandos. Si el recuento es ilimitado, este aspecto detrás no tiene límites. Si el recuento es 0, la eliminación de las entradas de historial duplicadas está deshabilitada " .
set history remove-duplicates <count>
Por defecto, gdb guarda el historial en el archivo ./.gdb_history en el directorio actual . Si desea que su historial de comandos no dependa del directorio en el que se encuentra, también incluya:
set history filename ~/.gdb_history
Si sigues teniendo problemas, asegúrate de que tu variable de entorno HISTSIZE sea un número adecuadamente alto. El mío estaba vacío, lo que provocaba que la configuración de "tamaño de historial" de gdb fuera 0 por defecto.
Adicional
export HISTSIZE=100000000
a mi ~ / .bashrc y todo es swell
Puede verificar su configuración de historial de gdb haciendo (dentro de gdb) "mostrar historial":
gdb$ show history
expansion: History expansion on command input is off.
filename: The filename in which to record the command history is "/home/xiao/.gdb_history".
save: Saving of the history record on exit is on.
size: The size of the command history is 100000000.
De los docs :
establecer el tamaño del tamaño del historial
establecer el tamaño del historial ilimitado
Establezca la cantidad de comandos que GDB mantiene en su lista de historial. De manera predeterminada, el valor de la variable de entorno HISTSIZE, o 256 si esta variable no está configurada. Si el tamaño es ilimitado, la cantidad de comandos que GDB mantiene en la lista del historial es ilimitada.