GDB调试-链接器

GDB(GNU Debugger)是一个强大的命令行调试工具,用于调试C、C++等编程语言的程序。以下是一些常用的GDB调试命令:

一、启动 GDB:打开终端并输入以下命令来启动GDB,并将可执行文件作为参数

gdb ld-new

GDB调试-链接器_第1张图片二、运行程序:在GDB中,使用 run 命令来启动被调试的程序。

(1)新建一个hello.c文件
#include 

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 main
run /home/newuser/projects/hello.o

GDB调试-链接器_第2张图片

三、 查看栈帧信息:使用 bt 命令来查看当前的调用栈信息。

bt

四、单步执行:使用 step 命令来逐行执行程序,包括进入函数内部。

step

s 命令(step):

  • s 是 "step" 的缩写。
  • 当你输入 s 命令时,GDB将逐行执行程序,包括进入调用的函数内部。
  • 如果当前行上的函数是一个函数调用,s 将进入该函数,允许你逐行调试函数内部的代码。
  • s 通常用于深入了解程序的内部工作,包括函数内部的执行路径。

五、逐语句执行:使用 next 命令来逐语句执行程序,不会进入函数内部。

next

n 命令(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

你可能感兴趣的:(算法,开发语言,c语言,服务器,linux)