问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

通过批处理 进入gdb 然后怎么运行gdb代码

发布网友 发布时间:2022-04-10 17:24

我来回答

1个回答

热心网友 时间:2022-04-10 18:53

GDB是一个强大的命令行调试工具。虽然X Window提供了GDB的图形版DDD,但是我仍然更钟爱在命令行模式下使用GDB。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。
于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成。在这里并不是要和Windows做个什么比较,所谓“寸有所长,尺有所短”,图形化工具还是有不如命令行的地方。

1 GDB概述
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。

一般来说,GDB主要帮忙你完成下面四个方面的功能:

1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、动态的改变你程序的执行环境。

从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。

一个调试示例
源程序:tst.c

代码:

1 #include
2
3 int func(int n)
4 {
5 int sum=0,i;
6 for(i=0; i
7 {
8 sum+=i;
9 }
10 return sum;
11 }
12
13
14 main()
15 {
16 int i;
17 long result = 0;
18 for(i=1; i<=100; i++)
19 {
20 result += i;
21 }
22
23 printf("result[1-100] = %d", result );
24 printf("result[1-250] = %d", func(250) );
25 }
编译生成执行文件:(Linux下)
root@linux:/home/benben/test# gcc -g tst.c -o tst
使用GDB调试:

代码:

root@linux:/home/benben/test# gdb tst <---------- 启动GDB

GNU gdb 5.1.1

Copyright 2002 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are

welcome to change it and/or distribute copies of it under certain conditions.

Type "show copying" to see the conditions.

There is absolutely no warranty for GDB. Type "show warranty" for details.

This GDB was configured as "i386-suse-linux"...

(gdb) l <-------------------- l命令相当于list,从第一行开始例出原码。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 模具边太大,造成材料浪费,怎么给对方写联络函 边后卫与中后卫的职责有什么区别? 房子在马路边太吵怎么办? 花岗石板边太尖利如何处理? 近视太阳镜边太厚怎么办 锌合金模具边太厚怎么改薄 图版边太大怎么回事 PS 之后怎么操作,边边太生硬了 如图,在一个边太为6米的下上方形大花坛四周铺上宽为1米碎石路。碎石路的面积昊多少平方米? 为什么离合要慢慢抬?? 为什么要边太离合边加油? 你是腐女吗,腐女是不是边太 难忍喜欢难忍是什么,边太? 怎么办?谁帮帮我我发现我现在的心里极度边太,这么可爱的小狗才一个多月我喂的很好,可是我总想打他,掐 边太啥意思? 孙杨流泪回应退役计划,名记发声解释,他已终身不能入选国家队,你怎么看? 泳联发布的东京奥运标准是什么? 孙杨为何退出世锦赛1500米自由泳? 中日泳坛东京奥运谁主沉浮? 奥运会里的游泳比赛最长的距离是多少米? 抖音上私聊突然对方的号显示封禁了是什么意思? 杭州到太原有多少公里 鲅鱼圈旅游攻略谁知道 鲅鱼圈旅游攻略 ,分享一下,谢谢。 30号去鲅鱼圈旅游,能给一个最好的旅游攻略吗?要最新的 虾皮油麦菜怎么做好吃 鲅鱼圈旅游攻略阿啊啊 菜怎么做好吃,虾皮油麦菜的家常做法 鲅鱼圈旅游攻略2日游 油麦菜还有虾皮还有胡萝卜可以放一起煮粥吗 油麦菜虾米皮的馅盒子的做法 上汤油麦菜的做法步骤图,上汤油麦菜怎么做好吃 原来骨头汤、虾皮并不补钙,那真正补钙的食物有哪些? 眼睛干涩疲劳的话,有什么样的食物比较护眼? 骨头汤、虾皮不在内,真正的补钙“高手”是哪些食物呢? 很多人忽略了,哪个菜不但含钙量高,且好吃,比吃虾皮都_? debian开发工具举例、介绍 百度一下冰箱保鲜室后壁上的孔是什么作用 请问新买的冰箱内后壁有个洞是什么情况? ugg什么意思? 送ugg是什么意思