首页
最新活动
服务器租用
香港服务器租用
台湾服务器租用
美国服务器租用
日本服务器租用
新加坡服务器租用
高防服务器
香港高防服务器
台湾高防服务器
美国高防服务器
裸金属
香港裸金属服务器
台湾裸金属服务器
美国裸金属服务器
日本裸金属服务器
新加坡裸金属服务器
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
CDN
CDN节点
CDN带宽
CDN防御
CDN定制
行业新闻
官方公告
香港服务器资讯
帮助文档
wp博客
zb博客
服务器资讯
联系我们
关于我们
机房介绍
机房托管
登入
注册
帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
联系客服
服务器资讯
/
香港服务器租用
/
香港VPS租用
/
香港云服务器
/
美国服务器租用
/
台湾服务器租用
/
日本服务器租用
/
官方公告
/
帮助文档
『Linux从入门到精通』第 ⑪ 期 - Linux调试器——gdb使用详解
发布时间:2024-03-11 03:46:49 分类:帮助文档
『Linux从入门到精通』第 ⑪ 期 - Linux调试器——gdb使用详解 文章目录 💐专栏导读💐文章导读🌷准备工作🌷安装gdb调试器🌷如何进入调试?🌷调试相关指令 💐专栏导读 🌸作者简介:花想云 ,在读本科生一枚,致力于 C/C++、Linux 学习。 🌸专栏简介:本文收录于 C语言初阶专栏,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。 🌸相关专栏推荐:C语言初阶系列、C语言进阶系列 、C++系列、数据结构与算法。 💐文章导读 在VS环境下,我们不仅可以写代码、编译、运行可执行程序,还可以对生成的可执行程序进行调试。调试的作用就不用强调了吧,相信大家都懂的~一个合格的程序员,调试的技能是必备的。本章我们就来学习如何在Linux环境下进行调试。 🌷准备工作 要进行调试,首先得生成一个可执行程序,所以首先准备一个简单的C程序: $ touch Test.c $ vim Test.c //C代码: #include
int accumulate(int n) { printf("Start\n"); int sum = 0; for (int i = 0; i <= n; i++) { sum += i; } printf("End\n"); return sum; } int main() { int n = 100; int ret = accumulate(n); printf("%d\n", ret); return 0; } 回顾一下make/Makefile的使用: $ touch Makefile $ vim Makefile //Makefile的内容 Test:Test.c gcc Test.c -o Test -std=c99 .PHONE:clean clean: rm -f Test 🌺注意事项 此处的选项-std=c99的意义是:for循环中定义变量i的操作是c99才支持的,所以在编译时需要声明。否则,会出现如下报错: 🌷安装gdb调试器 在Linux中,我们使用gdb进行调试;切换root身份或使用sudo指令进行安装: $ yum install -y gdb 出现如下文字即代表安装成功: 🌷如何进入调试? 生成可执行文件(Test)后,通过指令gdb [文件名]进入调试。 $ gdb Test 🌺注意事项 若是直接对该Test文件进行调试,会出现无调试信息的报错,如下图: 原因是一个程序的发布方式有两种:release与debug。gcc/g++默认生成的可执行程序是release版本。而我们都知道,调试针对的是debug版的可执行程序,因为只有debug版才包含调试信息。在gcc/g++编译时,加上选项-g即可选择生成debug版的Test文件(为了区分,可在debug版的文件添加后缀-debug,release版添加后缀-release)。 修正Makefile文件: Test-debug:Test.c gcc Test.c -o Test-debug -g -std=c99 .PHONE:clean clean: rm -f Test 重新生成文件Test-debug,并进入调试。 $ make $ gdb Test-debug 🌷调试相关指令 🌼gdb [文件名] :进入调试;🌼Ctrl + d或quit:退出调试;🌼list + [行号]或l + [行号](简写形式):显示可执行程序的源代码。从行号出开始显示,一次显示10行。 (第一次使用该指令后,为了便捷可直接回车继续执行上一条指令。其它指令效果相同) 🌼list + [函数名] 或 l + [函数名] :显示某个函数的源代码; 🌼run 或 r :运行程序(若未设置断点则运行至程序结束); 🌼break + [行号] 或 b + [行号] :在某一行设置断点; 🌼info + b 查看断点信息; 🌼break + [函数名] :在某个函数开头设置断点; 🌼delete/d breakpoint n :删除编号为n的断点; 🌼delete/d breakpoint:删除所有断点; 🌼disable breakpoint:禁用断点; 🌼enable breakpoint:启用断点; 🌼next 或 n :单条语句执行; 🌼step 或 s :进入函数调用; 🌼finish:执行到当前函数返回,然后停下来等待命令; 🌼print 或 p:打印表达式的值,通过表达式可以修改变量的值或者调用函数; 🌼p + 变量:打印变量值; 🌼set + 变量:修改变量的值; 🌼continue 或 c:从当前位置开始运行直到下一个断点; 🌼display + 变量名:跟踪查看一个变量,每次停下来都显示它的值; 🌼undisplay:取消对先前设置的那些变量的跟踪; 🌼until + 行号:跳至某一行去执行; 🌼breaktrace 或 bt:查看各级函数调用及参数; 🌼info + 变量 + locals:查看当前栈帧局部变量的值; gdb常用的命令就总结到这里了。 🌺注意事项 学习gdb时,我们应该与VS环境下的调试进行对比更好理解,例如: r 相当于vs中的 F5;b 相当于vs中的 设置断点;n 相当于vs中的 F10;s 相当于vs中的 F11(在函数处);p/display 相当于vs中的 监视; … 🌺注意简写的使用 gdb中的指令一般都是可以简写的,例如: list——l;run——r;break——b;delete——d;breakpoint——b;next——n;step——s;print——p;continue——c;breaktrace——bt; … 点击下方个人名片,可添加博主的个人QQ,交流会更方便哦~ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
上一篇
香港服务器 速度
下一篇
北京联通 香港
相关文章
阿里云学生服务器完成验证领取300元无门槛代金券和优惠权益
家用电脑做服务器,本地服务器搭建,公网IP申请,路由器改桥接模式,拨号上网
无需公网IP,在家SSH远程连接公司内网服务器「cpolar内网穿透」
【小白教程】幻兽帕鲁服务器一键搭建 - 支持更新 - 自定义配置
移动流量用超250MB怎么收费
2024年秒级自动化部署幻兽帕鲁服务器:8人玩版仅需26.52元
Zabbix监控联想服务器的配置方法
内网服务器(不通外网)访问高德在线地图服务的方法
同构异机迁移方案2_目标服务器仅安装数据库软件scp物理文件
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价
7*24H在线售后
高可用资源,安全稳定
1v1专属客服对接
无忧退款试用保障
德讯电讯股份有限公司
电话:00886-982-263-666
台湾总部:台北市中山区建国北路一段29号3楼
香港分公司:九龙弥敦道625号雅兰商业二期906室
服务器租用
香港服务器
日本服务器
台湾服务器
美国服务器
高防服务器购买
香港高防服务器出租
台湾高防服务器租赁
美国高防服务器DDos
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
行业新闻
香港服务器租用
服务器资讯
香港云服务器
台湾服务器租用
zblog博客
香港VPS
关于我们
机房介绍
联系我们
Copyright © 1997-2024 www.hkstack.com All rights reserved.