¿Cómo puedo configurar gdb
para que guarde el historial de comandos? Al comenzar una nueva sesión gdb
me gustaría utilizar las teclas de flecha hacia arriba para acceder a los comandos de las sesiones anteriores.¿Cómo puedo hacer que gdb guarde el historial de comandos?
Respuesta
Respuesta corta: echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit
Respuesta larga:
la historia de comandos está cubierto de la GDB manual, 22.3 Command History. Crear un archivo $HOME/.gdbinit
, cambiar sus permisos para 0600
, y añadir el siguiente contenido:
set history save on
Puede establecer el número de comandos pasados guardados con lo siguiente. El comando se describe como "Establezca 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 no se establece esta variable. Los valores no numéricos de GDBHISTSIZE se ignoran. Si 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 es 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 recuento 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 que se agrega 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, el BGF guarda la evolución en el archivo ./.gdb_history in the current directory. Si desea que su historial de comandos no depender de directorio donde se encuentra, también incluyen:
set history filename ~/.gdb_history
Acabo de enterarme de esto y pensé en compartirlo en SO. – Frank
Para la próxima vez, es perfectamente legítimo crear preguntas autocontestadas como non-community-wiki. :) –
@Frank ¿Qué tal si escribo 'n' luego hago clic en la flecha hacia arriba, obtengo todos los comandos anteriores que comienzan con' n'. – SIFE
Si todavía tiene problemas, asegúrese de que la variable de entorno HISTSIZE es un número suficientemente alto. La mía estaba vacío, causando "tamaño de la historia" del BGF establecer por defecto a 0.
Agregado
export HISTSIZE=100000000
a mi ~/.bashrc y todo es oleaje
Puede comprobar la configuración del historial GDB por haciendo (dentro de gdb) "mostrar la historia":
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.
Desde el docs:
conjunto de la historia tamaño tamaño
conjunto tamaño del historial ilimitado
Establecer el número de órdenes que el BGF 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.
Tuve el mismo problema. A pesar de poner 'set history size 100' en el archivo .gdbinit, la variable de entorno HISTSIZE seguía causando que el tamaño del historial se estableciera en cero. El problema es que gdb no comprende que [HISTSIZE se puede establecer en ilimitado] (http://stackoverflow.com/questions/9457233/unlimited-bash-history) – DavidW
El error HISTSIZE en gdb ha sido [solucionado a partir de Junio de 2015] (https://sourceware.org/bugzilla/show_bug.cgi?id=16999), no es probable que este cambio aún esté presente en su sistema. Mientras tanto, si 'HISTSIZE' está configurado, debe ser> 0, o gdb desactivará el historial. –
- 1. Evitar que WPF Frame guarde el historial en la pila
- 2. Guardar el historial de comandos en pdb
- 3. ¿Cómo hacer que Emacs guarde el archivo en varias ubicaciones?
- 4. ¿Cómo puedo hacer que carrierwave no guarde el archivo original después de procesar las versiones?
- 5. Recuperando el historial de línea de comandos
- 6. donde se almacena el historial de comandos?
- 7. ¿Cómo borro el historial de comandos en el shell mongodb?
- 8. Historial de comandos de Rstudio
- 9. Cómo ver el historial de varios comandos en Emacs
- 10. Cómo hacer que el conjunto guarde silencio después de guardar el modelo por primera vez
- 11. Historial de comandos en R
- 12. ¿Cómo puedo ejecutar comandos externos desde el símbolo del sistema gdb?
- 13. Historial de comandos en el modo de shell de emacs
- 14. ¿Cómo evitar que los comandos aparezcan en el historial de bash?
- 15. ¿Cómo puedo usar "ver" GDB?
- 16. ¿Cómo hacer que gdb salga si el programa tiene éxito, se rompe si el programa falla?
- 17. Cómo hacer una aplicación que guarde los mensajes enviados y recibidos en el iPhone
- 18. ¿Cómo hacer que el navegador guarde en caché las imágenes con php?
- 19. ¿Cómo hacer que github siga el historial del directorio después de cambiar el nombre?
- 20. Cómo evitar que Nancy guarde en el caché Vistas
- 21. ¿Cómo buscas a través del historial de comandos de vim?
- 22. svn historial a través de la línea de comandos
- 23. Scala: Cómo hacer que la copia de la clase de caso guarde la información del manifiesto
- 24. ¿Cómo accedo al historial de comandos desde IDLE?
- 25. ¿Cómo le digo a Zsh que escriba el historial actual del shell en mi archivo de historial?
- 26. ¿Cómo puedo "censurar" el historial de un repositorio de git?
- 27. ¿Cómo puedo hacer que los comandos de movimiento de ventana ignoren una ventana determinada?
- 28. ¿Cómo puedo aumentar la longitud del historial de comandos en R?
- 29. ¿Cómo puedo ingresar comandos a un indicador gdb mientras se depura con Eclipse CDT?
- 30. ¿Cómo puedo hacer que Perl acepte números negativos como argumentos de línea de comandos?
Nota: El archivo '.gdbinit' tiene que estar protegido contra escritura por otros que usted en linux. – urzeit
@urzeit - Creo que es una causa perdida en las distribuciones como Ubuntu. Permiten a cualquier persona en el directorio de inicio de otra persona de forma predeterminada. – jww
@jww El archivo '.gdbinit' no se procesa si los permisos no están configurados correctamente, independientemente de cuál sea el valor predeterminado o qué otras limitaciones de los directorios de inicio utiliza el sistema. – urzeit