Capítulo 6 Depurador de Linux: el uso de gdb

1. premisa

1, depuración, liberación

El método de lanzamiento final del programa se divide en dos tipos, uno es el modo de depuración y el otro es el modo de lanzamiento. Normalmente, los archivos ejecutables compilados por g++/gcc están en modo de lanzamiento, es decir, en modo de lanzamiento. ¿Cuál es la diferencia entre los dos? El modo de depuración permite la depuración con gdb, por lo que habrá alguna información de depuración en el modo de depuración, y los programadores suelen utilizar este modo. Otro modo de lanzamiento se denomina modo de lanzamiento.Este modo no contiene información de depuración, por lo que no se puede depurar con gdb, por lo que los usuarios suelen utilizar el modo de lanzamiento.

Entonces, para que podamos usar gdb para depurar el código, debemos agregarlo a las instrucciones de compilación del compilador -g. Como se muestra abajo:
inserte la descripción de la imagen aquí

2. Instalación de gdb

Algunos servidores Linux no tienen gdb, por lo que debe instalarlo usted mismo. Debido a que el autor está usando Linux de Ubuntu, aquí está el comando de instalación de Ubuntu.

 sudo apt install gdb

2. Instrucciones comunes de depuración

1. Empezar a depurar

Necesitamos ingresar el comando en la línea de comando:

gdb 二进制可执行文件

Como se muestra en la siguiente figura:
inserte la descripción de la imagen aquí
Cuando comenzamos a depurar, podemos ingresar algunos comandos en gdb para depurar.

2. Pantalla de código

l 行号                  //从第几行开始显示代码(往后显示10行),显示结束后,再按l,可以继续往后显示。
l 函数名                //列出某个函数代码

inserte la descripción de la imagen aquí

3. Configuración del punto de interrupción

b 行号                                           //在某一行设置断点
b 函数名                                         //在某个函数的开头设置断点
info break                                      //查看断点信息
delete breakpoints                              //删除所有断点
delete breakpoints                              //n删除序号为n的断点
disable breakpoints  断点编号                     //禁用断点
enable breakpoints   断点编号                     //启用断点

Establecer puntos de interrupción
inserte la descripción de la imagen aquí
Ver o modificar puntos de interrupción
inserte la descripción de la imagen aquí

4. Ejecución de código

r                        // 运行程序。
n                        // 逐过程执行。
s                      	 // 逐语句执行。
until x                  //跳至x行
finish                   // 执行到当前函数返回,然后停下来等待后续的命令。

5. Seguimiento de la información

p 变量                   // 打印变量的数值
set var                 // 修改变量的数值
c                       // 从当前位置开始连续而非单步执行程序
display 变量             // 跟踪查看变量,每次停下来都显示该变量的数值 
undisplay                //取消跟踪某个变量

6. Salir de la depuración

quit                        // 退出调试

Supongo que te gusta

Origin blog.csdn.net/weixin_72060925/article/details/131501768
Recomendado
Clasificación