GDB(GNU Debugger)是一个强大的命令行调试工具,用于调试C、C++等编程语言的程序。以下是一些常用的GDB调试命令:
一、启动 GDB:打开终端并输入以下命令来启动GDB,并将可执行文件作为参数
gdb ld-new 二、运行程序:在GDB中,使用
二、运行程序:在GDB中,使用 run 命令来启动被调试的程序。
 
(1)新建一个hello.c文件
#include <stdio.h>
int main() {
    int num = 42;
    char str[] = "Hello, World!";
    printf("This is an integer: %d\n", num);
    printf("This is a string: %s\n", str);
    return 0;
}(2) 编译成.o文件
gcc -c hello.c(3) run使用ld-new可执行文件,运行.o文件
在main处打断点
b mainrun /home/newuser/projects/hello.o
三、 查看栈帧信息:使用 bt 命令来查看当前的调用栈信息。
 
bt
四、单步执行:使用 step 命令来逐行执行程序,包括进入函数内部。
 
step
s 命令(step):
- s是 "step" 的缩写。
- 当你输入 s命令时,GDB将逐行执行程序,包括进入调用的函数内部。
- 如果当前行上的函数是一个函数调用,s将进入该函数,允许你逐行调试函数内部的代码。
- s通常用于深入了解程序的内部工作,包括函数内部的执行路径。
五、逐语句执行:使用 next 命令来逐语句执行程序,不会进入函数内部。
 
nextn 命令(next):
- n是 "next" 的缩写。
- 当你输入 n命令时,GDB将执行当前行上的函数并直接跳到下一行。
- 如果当前行上的函数是一个调用其他函数的函数,n将执行整个函数调用,然后在调用返回后停在下一行。
- n不会进入被调用的函数内部,它只会执行当前函数的上下文,然后移到下一行。
六、列出断点
info breakpoints
 七、继续执行:使用 continue 命令继续执行程序,直到遇到下一个断点或程序结束。
 
continue
八、查看变量值:使用 print 命令来查看变量的值。
 
print variable_name
 九、 设置条件断点:使用 break 命令的条件选项来设置条件断点,只有当条件为真时才会触发断点。
 
break if condition
1. 监视变量:watch 命令用于监视变量的值,当变量的值发生变化时,GDB会中断程序执行。
 
watch variable_name
 2. 设置显示格式:使用 set 命令设置变量显示的格式,如显示十六进制、二进制等。
 
set variable format


















