C++:浅尝gdb

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,混合源码+汇编)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值