gdb断点调试教程


本教程基于C++语言,在Linux环境下,通过示例代码讲解gdb断点调试。
通过本教程,您将掌握Linux下如何使用gdb进行断点调试。
在这里插入图片描述

1、C++示例代码

1.1、C++示例源码

/*!
* Copyright (c) 2021,ZYF.
* All Rights Reserved.
*
* \file main.cpp
* \brief 
*
* \author ZYF
* \date 2021/1/27 22:49:13
* \version 1.0.0
*/
#include <stdio.h>

void Demo1()
{
   
	int nSum = 0;
	for (int i = 0; i < 10; i++)
	{
   
		nSum += i;
	}

	printf("Demo1 sum is %d\n", nSum);
}

void Demo2()
{
   
	int nSum = 0;
	for (int i = 0; i < 5; i++)
	{
   
		nSum += i;
	}

	printf("Demo2 sum is %d\n", nSum);
}

int main(void)
{
   

	Demo1();

	Demo2();

	int nSum = 0;
	for (int i = 0; i < 5; i++)
	{
   
		nSum += i;
	}

	printf("Main sum is %d\n", nSum);

	return 0;
}

1.2、编译C++示例源码

[root@bogon GCC]# gcc -g gdbDebug.cpp -o gdbDebug
[root@bogon GCC]# ./gdbDebug 
Demo1 sum is 45
Demo2 sum is 10
Main sum is 10
[root@bogon GCC]# 

1.3、调试C++示例源码

[root@bogon GCC]# gdb -q gdbDebug
Reading symbols from /GCC/gdbDebug...done.
(
最低0.47元/天 解锁文章
gdb调试--断点设置
weixin_46185705的博客
03-08 6334
gdb调试 在没有集成开发环境的情况下,使用gdb调试gcc main.c f1.c f2.c -o app -g -g:给执行程序保留函数名和变量名 启动gdb 测试代码: #include"stdio.h" int main(int argc,char *argv[]) { int j=argc,i; printf("argc=%d\n",argc); for(i=0;i<j;i++) printf("arg...
6、GDB调试
qq_44918555的博客
05-31 439
GDB介绍 ◼ GDB 是由 GNU 软件系统社区提供的调试工具,同 GCC 配套组成了一套完整的开发环境,GDBLinux 和许多类 Unix 系统中的标准开发环境。 ◼ 一般来说,GDB 主要帮助你完成下面四个方面的功能: 启动程序,可以按照自定义的要求随心所欲的运行程序 可让被调试的程序在所指定的调置的断点处停住(断点可以是条件表达式) 当程序被停住时,可以检查此时程序中所发生的事 可以改变程序,将一个 BUG 产生的影响修正从而测试其他 BUG(动态修改程序) 生成调试信息 ◼ 通常,在为
gdb中条件断点
最新发布
不才的专栏
05-03 204
GDB中设置条件断点允许你在特定条件成立时才暂停程序的执行。这对于调试只在特定情况下出现问题的代码非常有用。
GDB常用调试方法及其底层原理
mrqiuwen的博客
06-26 3030
介绍了常用的GDB调试方法,各种断点的使用;介绍了GDB调试的底层原理。
GDB调试指南-断点设置
守望的博客-编程珠玑
02-27 1955
前言 上篇《GDB调试指南-启动调试》我们讲到了GDB启动调试的多种方式,分别应用于多种场景。今天我们来介绍一下断点设置的多种方式。 为何要设置断点 在介绍之前,我们首先需要了解,为什么需要设置断点。我们在指定位置设置断点之后,程序运行到该位置将会“暂停”,这个时候我们就可以对程序进行更多的操作,比如查看变量内容,堆栈情况等等,以帮助我们调试程序。 查看已设置的断点 在学习断点设置之前,...
gdb--设置断点的方法
qq_30505673的博客
05-18 419
【代码】gdb--设置断点的方法。
Linux调试工具GDB使用简易教程
01-20
GDB 支持断点、单步执行、打印变量、观察变量、查看寄存器、查看堆栈等调试手段。在 Linux 环境软件开发中,GDB 是主要的调试工具,用来调试 C 和 C++ 程序。 GDB的相关操作 下面给出一个具有buging.c的程序: ...
GDB调试工具教程
12-05
GDB是一个强大的命令行调试工具。GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件...
嵌入式GDB调试工具的原理及教程
08-10
嵌入式GDB调试工具的原理及教程 嵌入式GDB调试工具是一种广泛应用于嵌入式系统中的调试工具,今天我们通过一个实例来说明这个工具的原理及应用。 首先,让我们了解一下GDB调试工具的原理。GDB(GNU Debugger)是一...
RISCV GDB调试指南,介绍GDB指令
11-08
RISC-V GDB调试指南是一个由SHAKTI Development Team @ IIT Madras开发的教程,旨在帮助用户理解和掌握如何使用GDB(GNU调试器)来调试RISC-V架构的程序。GDB是一款强大的源代码级调试器,支持多种处理器架构,包括...
Linux下简单GDB调试教程
09-05
•break 在代码里设置断点, 这将使程序执行到这里时被挂起. •c 继续运行程序 •quit 终止gdb •watch 使你能监视一个变量的值而不管它何时被改变. •print 查看变量的值 •shell 使你能不离开gdb就执行UNIX shell ...
GDB动态调试学习-2-【断点
llovewuzhengzi的博客
02-26 1527
你可以将这些命令写入一个脚本文件,然后使用source指令来执行这个文件中的命令,这样可以大大提高调试效率。例如,如果你有一个包含多个断点和观察点的复杂调试会话,你可以将所有的设置保存到一个脚本中,下次调试时只需加载这个脚本即可。例如,设Bill是X公司的员工,工号为123,而John是Y公司的员工,工号也是123。在设置断点以后,可以忽略断点,命令是“ignore bnum count”:意思是接下来count次编号为bnum的断点触发都不会让程序中断,只有第count + 1次断点触发才会让程序中断。
LinuxGDB的介绍和使用、断点操作命令
wuwenbin12的博客
07-10 3826
介绍了GDB的使用、断点操作、调试步骤等。
一次gdb实战 设置断点 单步调试 打印和修改变量值等操作
qq_28499879的博客
05-09 2154
本案例总结了gdb的常用用法,详细规则可参考gdb入门教程 总结在前: 编译命令gcc -g gdb_test.c -o gdb_test,通过-g选项添加调试信息,否则使用gdb调试时,会报“No symbol table is loaded. Use the "file" command.”错误。 设置断点:bread(或b) 函数名; bread(或b) -line 行号;例如b main 或 b -line 21。 开始运行:run,该命令会直接运行到断点位置或直至结束。 单步执行:next(n
LinuxLinux中的gdb调试器的使用
学了就忘是正常现象
10-31 2192
gdb是真的不好用。
GDB【0】-调试指南断点设置
m0_46535940的博客
05-14 2295
前言 上篇《GDB调试指南-启动调试》我们讲到了GDB启动调试的多种方式,分别应用于多种场景。今天我们来介绍一下断点设置的多种方式。 为何要设置断点 在介绍之前,我们首先需要了解,为什么需要设置断点。我们在指定位置设置断点之后,程序运行到该位置将会“暂停”,这个时候我们就可以对程序进行更多的操作,比如查看变量内容,堆栈情况等等,以帮助我们调试程序。 查看已设置的断点 在学习断点设置之前,我们可以使用info breakpoints查看已设置断点: info breakpoints Num Type
原来gdb的底层调试原理这么简单
IOT物联网小镇
12-14 3194
一、前言 这篇文章来聊聊大名鼎鼎的GDB,它的豪门背景咱就不提了,和它的兄弟GCC一样是含着金钥匙出生的,在GNU的家族中的地位不可撼动。相信每位嵌入式开发工程师都使用过gdb调试程序,如果你说没有用过,那只能说明你的开发经历还不够坎坷,还需要继续被 BUG吊打。 我们都知道,在使用gcc编译时,可以使用-g选项在可执行文件中嵌入更多的调试信息,那么具体嵌入了哪些调试信息?这些调试信息是如何与二进制的指令之间进行相互交互?在调试的时候,调试信息中是如何获取函数调用栈中的上下文信息? 针对上面这些疑惑,道
linux c之gdb常用断点调试总结
码莎拉蒂
12-29 4万+
1 、安装GDB sudo apt-get install gdb 2 、怎么打断点 1 、源文件的某一行设置断点 break 行号 2、一个特定的函数设置断点 break 函数名 3、设置条件断点 break 行号 if 条件 3、举例分析 hello2.c源文件如下 #include int main() { int a = 1, b = 2, c = 3;
GDB调试程序(一)
热门推荐
陈皓专栏 【空谷幽兰,心如皓月】
07-02 65万+
GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:    1、启动你的程序
pwngdb动态调试教程
09-17
Pwndbg是一个用于GDB的插件,旨在帮助进行漏洞利用和CTF挑战的动态调试工具。它提供了一系列的功能和命令,可以帮助我们更方便地进行动态调试。以下是一些常用的pwndbg命令和操作: 1. break:设置断点 2. run:启动...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 解决Linux下安装oracle提示DISPLAY not set. Please set the DISPLAY and try again.方法 9423
  • gdb断点调试教程 6595
  • C++版本判断点是否落入多边形内原理讲解及代码实现 3962
  • C#下log4net日志记录使用实例完整教程 3179
  • C++版本迪杰斯特拉(Dijkstra)算法原理讲解及代码实现 3027

分类专栏

  • C/C++ 13篇
  • PostgreSQL 1篇
  • CMake 3篇
  • Linux 7篇
  • JAVA 1篇
  • Windows 3篇

最新评论

  • C++版本大数阶乘原理讲解及代码实现

    雾桉03: 我觉得那个应该是i<=nNumber因为阶乘也得乘这个数的本身,如果不加等于号最后的结果少乘了他本身

  • gdb断点调试教程

    BuffaloX_X: 有用,谢谢

  • 解决Linux下安装oracle提示DISPLAY not set. Please set the DISPLAY and try again.方法

    RyeRyeRyeRye: xhost执行不了

  • 解决Linux下安装oracle提示DISPLAY not set. Please set the DISPLAY and try again.方法

    gblfy: 博主,还是不行有好的办法吗?

大家在看

  • Python | Leetcode Python题解之第165题比较版本号
  • Python | Leetcode Python题解之第166题分数到小数
  • Java | Leetcode Java题解之第165题比较版本号
  • Java | Leetcode Java题解之第166题分数到小数
  • C语言 | Leetcode C语言题解之第166题分数到小数

最新文章

  • 解决Mac下使用git命令时中文乱码的办法
  • C#下log4net日志记录使用实例完整教程
  • Windows下安装配置OpenCV详细教程
2022年1篇
2021年1篇
2020年24篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhangyanfeng1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

4617作文网四字商贸公司起名大全我们都被忘了开商店起名字,寓意好点的活动名称怎么起牛宝宝起名典故银监会专业考试内容荷花怎么画商城起名字大全蔬菜合作社起名大全集仙芋传奇加盟费多少国内起名字网一边什么一边什么管楚易家暴景字起名字男孩大约是爱你可以爱我很久吗出租房取名 公寓起名南城都汇四期狼刃1公斤等于多少千克做食品公司起什么名字开店如何起名大全起名录重修之灭仙弑神2景字用在起名的意思起名字带木的名字狂上加狂饭店周易起名为宝宝起名字过度反应阿司匹林淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男子给前妻转账 现任妻子起诉要回网友建议重庆地铁不准乘客携带菜筐月嫂回应掌掴婴儿是在赶虫子重庆警方辟谣“男子杀人焚尸”国产伟哥去年销售近13亿新的一天从800个哈欠开始男孩疑遭霸凌 家长讨说法被踢出群高中生被打伤下体休学 邯郸通报男子持台球杆殴打2名女店员被抓19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警两大学生合买彩票中奖一人不认账德国打算提及普京时仅用姓名山西省委原副书记商黎光被逮捕武汉大学樱花即将进入盛花期今日春分张家界的山上“长”满了韩国人?特朗普谈“凯特王妃P图照”王树国3次鞠躬告别西交大师生白宫:哈马斯三号人物被杀代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了房客欠租失踪 房东直发愁倪萍分享减重40斤方法“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火手机成瘾是影响睡眠质量重要因素考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼网友洛杉矶偶遇贾玲呼北高速交通事故已致14人死亡西双版纳热带植物园回应蜉蝣大爆发男孩8年未见母亲被告知被遗忘张立群任西安交通大学校长恒大被罚41.75亿到底怎么缴沈阳一轿车冲入人行道致3死2伤奥运男篮美国塞尔维亚同组周杰伦一审败诉网易国标起草人:淀粉肠是低配版火腿肠外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万杨倩无缘巴黎奥运男子被猫抓伤后确诊“猫抓病”春分“立蛋”成功率更高?记者:伊万改变了国足氛围奥巴马现身唐宁街 黑色着装引猜测

4617作文网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化