2024年C C++最新Linux下gcc和gdb的基本使用_gdb 跳过某一行(1),C C++面试2024

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

一般的头文件都在 /usr/include/  目录下,用 ls 查看:

编译

**gcc 首先要检查代码的规范性、是否有语法错误等,在检查无误后,gcc 把代码翻译成汇编语言

命令:gcc –S test.i –o test.s**

-S:该选项只进行编译而不进行汇编,生成汇编代码

这些都是汇编指令,我们在这里只需知道大致过程,不对这些文件做深入探讨。

汇编

汇编阶段是把编译阶段生成的".s"文件转成目标".o"文件–可重定位的目标文件

命令:gcc –c test.s –o test.o

-c:该选项只进行汇编,对程序进行翻译,然后停止,不进行链接

从开始到这一步,我们是对我们写的代码进行操作,写过函数的伙伴都知道,先实现才能调用。我们文本中用了打印函数 printf ,但我们并没有实现它,那么它在哪?怎样才能让它和我们写的ptintf 函数的调用产生联系?

不需要我们写的,可以直接调用的函数,都在C标准库中:

链接

最后一步就是回答上一步问题:

-o:将我们写的调用函数与库中函数的实现产生链接

命令:gcc test.o –o mytest

查看可执行文件依赖的库:

动静态库

动态库

一般链接过程中,默认用到的库是动态库,后缀为.so

优点:大家共享一个库,可以节省资源

缺点:一旦库确实,会导致几乎所有程序失效

静态库

将库中的相关代码,直接拷贝到自己的可执行程序中

如果我们想静态链接,在链接步骤后加 -static,静态库后缀为.a:

命令:gcc test.o -o mytest2 -static

优点:不依赖任何库,程序可独立运行

缺点:浪费资源

安装c语言的静态库:yum install -y glibc-static

安装c++的静态库:yum install -y libstdc+±static

学会用gdb调试程序

创建新的文件,求10以内数的累加和:

进入退出

生成debug版本

我们可以看到给我们的提示:未找到调试符号

Linux默认生成的可执行程序是release版本,不支持调试,我们要先将可执行程序变成可调试的debug版本:

l:显示代码段

b、info:打断点 、查断点

r:直接运行

停到断点处,没有断点直接运行完程序

c:一个断点跳到下一个断点

s:逐语句

若有函数情况下,想要进入函数则继续s即可,不想要进入函数则n,n是逐过程执行。

p:查看变量

display:常显示

用p查看变量后,再次逐语句或者逐过程执行后,不会再显示出变量,这需要我们再次用p查看,想要做到和vs下监视窗口一样的话,就需要用到display

undisplay:取消常显示

until:跳转到指定行

如果我们进入到循环后,想跳出循环的话,一种方法就是一直走完循环,想快速跳过,可以

until+ 行数 :

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

(img-KR8vLWFt-1715551807075)]
[外链图片转存中…(img-bjFiEsv6-1715551807076)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值