首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linuxgdb入门使用教程

前言 gdblinux下非常好用一个调试工具,虽然它是命令行模式调试工具,但是它功能强大到你无法想象,这里简单介绍下gdb使用方法,需要朋友们下面来一起看看详细介绍吧。...如果打印数组,由于默认设置,可能打印数组尾部部分没有显示,可以通过如下命令设置打印数组最大长度 (gdb) set print elements 300 调试查看代码 list function...如果能够在运行同时显示代码就好了, 答案是肯定. 使用如下命令启动gdb: gdb -tui 项目名 或者在启动gdb后, 输入命令focus,如图: ?...恢复程序运行和单步调试 在gdb,和调试步进相关命令主要有如下几条: continue 继续运行程序直到下一个断点(类似于VS里F5) next 逐过程步进,不会进入子函数(类似VS里F10)...threadno指定了线程ID,注意,这个ID是GDB分配,你可以通过”info threads”命令来查看正在运行程序线程信息。

1.9K31

linux gdb调试

以前在IDE调试的话,就很容易设置断点,查看参数值,到了 linux 下就变得比较麻烦了。 目前觉得比较重要就是: 1.设置断点: gdb命令 break,也可以用 b 。...方法 b [函数名|行号],需要注意是,如果你要设置在类成员函数设置断点,要加上类名,比如 b TcpClient::onMessage,再接着,如果用 namespace 要加上 namespace...3.一直显示 gdb命令 display,方法 display para。...取消的话 undisplay 编号 4.列出信息 gdb命令 info,info break, info display 5.调试 单步调试 n,进入函数单步调试 s,跳到下一个断点 c 6.读取文件...gdb命令 file , file path. 7.执行 gdb 命令 run, run args. 8.显示代码 gdb 命令 list,list [行号] 之后可以按 Enter 继续显示

4.6K32
您找到你想要的搜索结果了吗?
是的
没有找到

Linuxgdb使用

当我们能够在windows下,使用vs 2019等编译器去进行调试时候,我们可以将在Linux下使用gdb调试这两者之间进行对比: 调试这个操作,在方法上有区别吗?...(Linux和windows)其实,在调试思路上是一样,在调试操作方式上一定不一样。 因此,在学习Linuxgdb调试时,一定要抓住我们调试思路去学习。...在Linux下,我们使用是命令行调试。...因此,本章着重解析是操作方法,不是思路: 首先我们先写好测试用代码:  并且将代码写入makefile  接着开始调试:调试工具:gdb 使用gdb+需要调试代码文件来开启调试模式: 但此时这里显示是没有可调试地方...在Linux,用gcc/g++生成软件程序是release版本! (这里顺便复习一下:gcc默认:动态链接、默认release) 所以,我们需要将其变成debug。

2.1K20

LinuxLinux调试器--gdb使用

---- ---- 一、gdb介绍 1. gdblinux上面的调试器,是非图形化界面纯命令行调试,用起来非常麻烦! 2....安装gdb工具命令 sudo yum install -y gdb 3....默认情况下,gdb无法进行对gcc现在发布程序进行调试,因为gcc默认生成软件是realease版本,没有调试信息,无法被调试器gdb调试,并且gcc是默认动态链接,如果想静态链接还需要加static...值得注意是:每一个二进制程序不仅仅只是一堆二进制代码,他们内部都是有特定格式Linux形成可执行程序是elf格式。...中所添加调试信息,而realease版本是没有这些调试信息 三、gdb使用 1.显示代码: l+行号(list)指令 gdb会默认记住历史上曾经输入指令,l+0输入后gdb会从第零行开始显示部分代码

3.5K30

Linux gdb使用基础

GDB简介 GDB(GNU Debugger)是Linux下一款C/C++程序调试工具,通过在命令行执行相应命令实现程序调试,使用GDB时只需要在shell输入gdb命令或gdb filename...= 0 - 根据条件设置断点(sum不等于0时,第9行设断点) set varsum=0 - 修改变量值(使sum变量值为0) watch - 监视一个变量值 examine - 查看内存地址...可以继续使用info locals命令查看add()函数局部变量值,也可以使用frame 1命令先选择主函数所在1号帧栈,再使用info locals命令查看主函数局部变量值: (gdb)...result = add(1, 10); (gdb) info locals result = 0 (gdb) 可以看到,add()函数两个局部变量值均被默认初始化为0,主函数局部变量result...参考: 《精通Linux C编程》- 程国钢 《Linux C编程完全解密》- 闫敬 吴淑坤

2.3K10

Linux调试器——gdb

gdb 什么是gdb debug与release gdb基本操作 查看代码与断点 执行与调试 监视变量 什么是gdb 之前用一直都是VS编译器进行调试,调试是一个非常重要过程,在Linux调试需要用到一个工具就是...在调试思路上VS编译器和gdb是一样,但是调试过程差距就很大了。 我们都知道Linux操作都是通过命令完成,调试也是一样,靠就是命令调试。...Linux环境下,gcc/g++编译出来可执行程序默认是release模式 先来写一个程序验证一下 进入调试模式 gdb 你要调试文件 后面的on debugging symbols...在VS编译器,我们按F9是可以进行打断点,再按一次可以取消: Linux进行打断点是:b 你要断点行数 现在13行有一个断点,查看断点是info b: 断点也有自己行,就是前面...VSF10是逐过程运行,每次只跳过一行代码,比如调用函数的话是不会进入,需要按F11逐语句才能进入调用函数查看: gdb逐过程:n gdb逐语句:s n没进入函数。

3.7K00

Linux】调试工具gdb使用

,但是还没有学习如何在Linux下对代码进行调试,通过本章学习,将学会如何使用gdb对代码进行调试。...gdb 可执行程序:进入调试 q/quit/ctrl d:退出调试 代码查看(l) 我们在这种无图形化界面的Linux下调试时,如何看到我们代码呢?...,同样我们在Linux下也可以查看堆栈调用情况,输入指令bt即可 VS里main函数函数栈帧创建 Linux下使用gdb调试bt命令观察所调用堆栈 跳转指定行(until) 在vs,我们在调试时要想跳转至指定行号地方...,我们通常都是f9打断点,f5直接运行到该断点,来实现跳转,但是在gdb,我们可以在不打断点情况下跳转至我们指定行号位置。...断点之间跳转(c) 我们知道vs下可以使用f5来进行断点之间切换,gdb也可以,命令为c(vsf5)(vs中使用f5都是处于调试状态下,因此gdb也是如此) 关于gdb其它一些指令 gdb指令还有很多

3.3K30

linuxgdb常用调试命令

gdb调试程序时,常常很困惑一些命令使用,要么是不知道这个命令,要么忘了命令使用方法。...起始位置 watch buf buf值一旦改变,会触发watchpoint 奇淫技巧: cat ~/.gbinit gdb会从这个文件读取配置 cat ~/.gdb_history 呵呵,...对于gdb时想要查看长字符串老是显示不全,怎么半呢,gdb参看数组字符串时默认只是显示部分数据,通过这个命令可以修改: set print elements 0 默认这里设置是200,设置为0表示没有限制...还有其它一些set命令可以试试: set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数参数地址。...系统默认为打开 set print object 在C++,如果一个对象指针指向其派生类,如果打开这个选项,GDB会自动按照虚方法调用规则显示输出,如果关闭这个选项的话,GDB

2.9K20

LinuxLinux调试器-gdb使用

前言 在前面的博客【Linux】编译器-gcc/g++使用已经分享了关于编译器使用,而编译器使用离不开调试,这次就来分享一下Linux调试器-gdb使用。 2....而在gdb也想这样做,那么就用下面这个命令: disable Num 试一下myprocess.c里面的3号断点: disable 3 发现3号断点Enb就变为n了: 重新运行一下代码:发现停在了...在vs里面要想启动断点,直接右击就会出现 而在gdb重新启动,想要用到命令: enable Num 重新启动3号断点: enable 3 发现这里3号断点Enb就变为y了 3.5 next...在gdb想要进入到函数内部就用命令: step/s 打了一个断点在17行: 然后用来实现逐语句调试:发现进入到AddToTarget函数里面: 发现这个代码就在7和9行之间反复执行:...而在gdb想要一个部分一个部分调试,从而方便找出代码问题,就用到命令: continue/c 先打一些断点; 此时运行时候就发现在17行就停下来了: 想要直接从一个断点运行到下一个断点处就直接

12710

LinuxLinux调试器-gdb使用

背景 程序发布方式有两种,debug模式和release模式 Linux gcc/g++出来二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序时候, 加上-g选项...初次使用时,需要先安装: sudo yum install -y gdb 使用 注意使用gdb时,调试是debug模式。...(可简写为 i b) display 变量名:跟踪查看一个变量,每次停下来都显示它值 undisplay:取消对先前设置那些变量跟踪 until X行号:跳至X行(中间代码都是运行了) breaktrace...(或bt):查看各级函数调用及参数 info(i) locals:查看当前栈帧局部变量值 quit:退出gdb 我们打断点后,如果要删,需要 d 断点序号。...在调试过程是可以修改变量,用set var 修改变量。通常用来判断循环条件,这样做可能会导致最终值不正确。

10200

Linux工具学习之【gdb

gdb 进行调试了 调试打开与关闭 首先要学习如何打开和关闭 gdb 启动调试 我们调试对象是已经生成可执行程序,并非最开始源文件 这很好理解,因为在VS也是先编译、再调试 通过 Makefile...,如果没有断点,那只能一步步调试,效率很低,下面就来看看如何让程序在 gdb 跑起来及断点相关操作 r 运行程序 gdb 能直接快速运行程序,假设没有断点,那么程序会直接运行出结果 (gdb) r...,确保程序每一步都被执行 查看变量 调试过程还有一个很重要工作:查看变量信息,如VS监视窗口,假设没有监视功能,那么我们可能连变量变化情况都无法捕捉到,庆幸gdb 支持监视功能 bt...,关于 gdb 还有很多很多指令,一时半会是学不完,感兴趣同学可以去这篇文章里看看《GDB使用详解》 ---- 总结 以上就是关于Linux工具:gdb 全部介绍了,gdb 是一款功能丰富调试器...,它赋予了我们在纯命令行环境下调试代码能力,虽然它使用门槛高,但用熟后就会很顺手,配合我们之前学习过 vim、gcc ,能做到像VS那样开发环境,让我们 Linux 使用场景更加丰富 如果你觉得本文写还不错的话

17920

Linux调试器-gdb使用

Linux gcc/g++出来二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序时候, 加上 -g 选项 生成Debug模式下文件:gcc -o process-Dubeg...readelf process.exe-Debug -S | grep debug//将二进制文件中和debug有关部分过滤出来 gdb命令 为了演示gdb命令使用方法,以下面这个代码为例: #...\n"); return 0; } ~ gdb binFile进入gdb环境,其中binFile是一个可执行程序 q或者quit指令可退出 list或者l:现实binFile...num/Fun_name Tip: gdb会默认记录上一步操作,如果想要显示整个文件内容,首先可以从最开始显示l 0,紧接着直接l,每次显示10行,直到结束为止。...run或者r:运行,类似于VSF5 程序正常执行,这里程序只是运行,无法调试 b num或者b Fun_name:打断点,可以在行号num处打断点,可以在名为Fun_name函数处打断点。

9910

Linux系统下gdb调试(一)

LinuxGDB(GNU Debugger)是-一个用来调试C、C++程序功能强大调试器,它能够在程序运行过程中观察程序内部结构和内存使用情况。...程序员也可以使用gdb来跟踪程序错误,从而减少了程序员工作量。...3、gdb命令+实战演示: gdb使用非常简单,只要在Linux命令提示符下输入gdb命令,系统便会启动gdb。...另外,为了使gdb正常工作,必须使程序在编译时候包含调试信息,这需要在gcc编译时加上-g或者-ggdb选项。调试信息包含了程序每个变量类型和在可执行文件地址映射以及源代码行号。...下图是在Linux下启动gdb简单演示,具体会在下面的实战来演示: root@ubuntu-virtual-machine:/home/ubuntu# gdb GNU gdb (Ubuntu 8.1

3.8K10

Linuxgdb安装及使用入门

-g选项作用是:在可执行文件中加入源码信息,比如:可执行文件第几条机器指令对应源代码第几行,但并不是把整个源文件都嵌入到可执行文件,而是在调试时必须保证gdb能找到源文件。...This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details....:~/2/02#   gdb  a会进入a可执行程序gdb模式,start命令就使程序准备运行程序第一条语句。...[8] 段错误   如果程序运行时出现段错误,用gdb可以很容易定位到究竟是哪一行引发段错误。在gdb运行,遇到段错误会自动停下来,这时可以用命令查看当前执行到哪一行代码了。   ...gdb显示段错误出现在 _IO_vfscanf 函数,用bt命令可以看到是哪一个函数调用了它。

6.2K10
领券