C++:浅尝gdb
hp window11 wsl + ubuntu
what is gdb?
GNU调试器(英语:GNU Debugger,缩写:GDB),是GNU软件系统中的标准调试器,此外GDB也是个具有移携性的调试器,经过移携需求的调修与重新编译,如今许多的类UNIX操作系统上都可以使用GDB,而现有GDB所能支持调试的编程语言有C、C++、Pascal以及FORTRAN。
检查本地已安装:
how to use gdb?
用vim写了一个c文件hello.c
#include<stdio.h>int main()
{int i = 0;printf("hello,world");printf("i is %d\n",i);i++ ;printf("i is now %d\n",i);return 0;
}
使用cat命令查看hello.c的内容
使用gcc编译用于dubug的文件hello.c,会默认生成名为a.out的执行文件
gcc -g hello.C
gcc: The GNU Compiler Collection command for compiling C programs.
-g: This flag tells GCC to include debugging symbols (useful for tools like gdb).
hello.c: The source file to be compiled.
By default, this command generates an executable named a.out on Linux
gdb a.out
看到(gdb)字说明可以使用gdb命令了
使用gdb的start命令,开始dubeg ,停留在main函数体处。
而list可以在gdb里面列出正在操作的文件内容。
然后按下Ctrl + X + A开启TUI模式,就是下面这个好看的视图,当然关闭也是此快捷键。
使用next,可以对程序进行单步跟踪,由原来的第4行走到原来的第5行。
还可以使用layout split可以看到源码和相对应的汇编。当然这里只是抛砖引玉,使用了gdb中的一部分命令进行演示,常用gdb命令放到文章末尾了,可以慢慢把玩。
最后按下quit(简称q)退出,按下y确认退出gdb调试。体验就此完毕,怎么说呢,之前对gdb比较神秘,现在也算是微微打开了它的神秘面纱。
Here are some commonly used GDB (GNU Debugger) commandsclick me
视图切换:
快捷键 功能说明
Ctrl + X + S 显示 源码视图(等效 layout src)
Ctrl + X + A 显示 汇编视图(等效 layout asm)
Ctrl + X + R 显示 寄存器视图(等效 layout regs)
Ctrl + X + F 显示 函数调用栈视图(等效 layout split,混合源码+汇编)