Comandos de GDB comunes
Hay varias formas de invocar el depurador de GNU. Puedes escribir directamente gdb en la terminal para abrir su consola.
Alternativamente, puede llamar al depurador con un archivo ejecutable. Si tiene un archivo ejecutable, como un programa C o C ++, que desea depurar, puede compilarlo usando el -gramo opción. Para nuestro ejemplo, usaremos un muestra 1.CPP archivo.
Para compilarlo usando el compilador G ++, el comando será:
$ G ++ -G -O Sample1 Sample1.CPP
Aquí, estamos agregando la opción -o para escribir el programa compilado en el archivo llamado muestra 1.
Una vez compilado, puede invocar el depurador de GNU mientras adjunta el archivo de salida compilado a la depuración. El comando será:
$ GDB muestra1
Se abre una consola y puede usar los comandos GDB disponibles para ejecutar diferentes actividades. Los comandos comunes incluyen:
1. abandonar: para salir de la consola GDB, escriba renunciar o Q.
2. ejecutar [args]: Según las funciones del programa, puede invocar la función para ejecutar con este comando y agregar los argumentos necesarios. Para nuestro caso, tenemos el GetSquare función, que toma un argumento del número. Por lo tanto, si necesitamos obtener el cuadrado de un número, escribimos correr seguido del número. Por ejemplo, obtengamos el cuadrado de 6. La salida será como se muestra a continuación:
En la parte inferior, puede notar que el programa devolvió la salida del cuadrado. Puede ejecutar más opciones con diferentes argumentos.
3. ayuda: Abre la página manual para el depurador de GNU con todas las clases de comandos disponibles para su uso.
Puede reducir la página de ayuda especificando qué clase de comandos desea obtener su página manual. Para esto, la sintaxis se usa a continuación:
$ AYUDA [Nombre de clase]
Por ejemplo, para obtener la página manual de la clase correr, La siguiente salida será:
4. romper: Cuando necesite depurar el programa, puede agregar varios puntos de interrupción utilizando el comando de ruptura. Además, hay múltiples formas de agregar un punto de interrupción.
Las formas comunes incluyen:
B [Nombre de la función]
romper [número de línea]
Romper [Nombre de la función]
Break *[Dirección]
Por ejemplo, si conoce un nombre de función específico en el programa y desea crear un punto de interrupción para la depuración, puede usar la sintaxis anterior. Creemos un punto de interrupción para una función llamada GetSquare En el siguiente programa:
En la salida anterior, creamos el punto de interrupción y la información mostrada en la consola.
Si intenta ejecutar el programa, se detendrá en el punto de interrupción. Por ejemplo, obtengamos el cuadrado de 12 usando correr 12.
El depurador se detiene en el punto de interrupción donde está el nombre de la función especificado. En este punto, puede depurar su programa y continuar una vez que tenga todo funcionando bien.
5. Continuar o C: Cuando se complete la depuración y desea reanudar la ejecución del comando sin el punto de interrupción establecido, ejecute el comando continuar. Ejecutará el comando hasta el siguiente punto de interrupción o el final del programa. Si desea agregar el número de veces para repetir el comando continuar, agregue el recuento.
Las dos sintaxis son:
Continuar o C
C [Repetir recuento]
Para nuestro caso, continuemos sin ningún recuento de repetición.
Da la salida del comando detenido. Si tuviéramos argumentos diferentes, proporcionaría cada resultado después de un punto de interrupción. Por ejemplo, invocemos correr 4 6 8, Entonces usa el continuar ordenar ver qué pasa.
Observará después de cada argumento que el programa cumple con un punto de ruptura. Cuando ejecutamos el comando continuar, se reanuda su ejecución.
6. próximo: Cuando el programa cumple con un punto de interrupción, puede escribir próximo o norte para imprimir la siguiente línea en ejecución.
7. borrar: Si tiene diferentes puntos de interrupción y puntos de control, puede eliminarlos usando el siguiente comando. Si tu corres d o borrar Sin argumentos, elimina todos los puntos de interrupción y puntos de control. Sin embargo, puede especificar qué eliminar seleccionando su número.
8. claro: Para eliminar un punto de interrupción asociado con un nombre de función determinado, use el siguiente comando BLOAR seguido del nombre de la función:
En este punto, ya no tenemos ningún punto de interrupción en nuestro programa.
Si eliminar un punto de interrupción no es una opción, ¿qué tal deshabilitarlos y habilitarlos cuando lo desee?
9. desactivar y permitir: para deshabilitar un punto de interrupción, especifique su número.
Más tarde, use el comando habilitar seguido de su número para activarlo hacia atrás.
10. información: Puede obtener los detalles de los puntos de control y los puntos de interrupción disponibles. Use el siguiente comando para obtener los detalles de todos los puntos de interrupción o puntos de control:
puntos de interrupción de información
Puntos de control de información
Para especificar un punto de interrupción o punto de control, use la siguiente sintaxis:
Información de puntos de interrupción [Number de punto de interrupción]
Información de control de control [Número de punto de interrupción]
11. Establecer Args: para establecer una lista de argumentos que se use al ejecutar el correr comando, use args establecidos seguidos de los argumentos. Por ejemplo:
establecer args 2 4
Si invocamos el comando Ejecutar, obtendrá el cuadrado de los dos argumentos.
Puede ver la lista disponible de argumentos utilizando el Mostrar args dominio.
Conclusión
Hemos cubierto la lista de comandos GDB más comunes en Linux. Con un poco de práctica, será más fácil usar los comandos para lograr diferentes funcionalidades. Con suerte, este artículo proporcionó una ventaja en el uso de los comandos de depuración de GNU.