gcc和gdb基础使用方法

gcc基础使用

  1. 预处理
gcc -E test.c -o test.i
  1. 编译
gcc -S test.i -o test.s
  1. 汇编
gcc -c test.s -o test.o
  1. 链接
gcc test.o -o test

在这里插入图片描述
在这里插入图片描述

常见的一些参数选项

在这里插入图片描述
在这里插入图片描述
(默认情况下,gcc会在系统默认的情况下寻找所需要的库文件,有了-L选项,首先到-L指定的目录中寻找,然后才到系统默认的路径中寻找)
在这里插入图片描述

Linux库的创建和使用

静态库和动态库的载入顺序是不一样的,静态库是在编译时就拷贝到应用程序中,节省编译时间;动态库则是在程序开始运行后调用库函数才能被载入

创建静态库的步骤

  1. 在一个头文件中生命静态库所导出的函数
  2. 在一个源文件中实现静态库所导出的函数
  3. 编译源文件,生成可执行代码
  4. 将可执行代码所在的目标文件加入到某个静态库中,并将静态库拷贝到系统默认的存放库文件的目录下
    在这里插入图片描述

ar命令的基础使用

在这里插入图片描述

静态库的使用

1、在调用库文件的test.c源文件中,引用需要的头文件
2、编译的时候采用以下方式
在这里插入图片描述

动态库的创建和使用

编译时加上-shared,所生成的可执行程序就是动态链接库
在这里插入图片描述
使用动态库的两种方式
1、通过gcc的命令调用
在这里插入图片描述
2、通过调用系统函数来使用
在这里插入图片描述
在这里插入图片描述
-l,后面既可以带静态库,也可以带动态库,两者都不需要前缀和后缀

GDB调试器基础

gdb调试的是可执行文件,要使得一个可执行文件可以被gdb调试,需要在编译器编译的时候加入-g选项

gcc -g test.c -o test

1、启动和退出

gdb 程序文件名
gdb    file 程序文件名
quit

2、显示和查找程序源代码
在这里插入图片描述
在这里插入图片描述
3、执行程序和获得帮助

gdb -q test 或者 file test只是装入程序,程序并没有执行

运行:run
在这里插入图片描述
4、设置和管理断点

在程序执行中,在某个函数或者某个条件下暂停下来,以查看变量的值和表达式的值
4.1以行号设置断点

break 7

4.2 以函数名设置断点

break get_sum

4.3 以条件表达式设置断点

break 行号或者函数名get_sum  if 条件

4.4 以表达式设置断点(需注意表达式的变量在使用前是已经定义过的)

watch  条件表达式

在这里插入图片描述
在这里插入图片描述
4.5查看当前设置的中断点

info breakpoints

4.6 使得中断失效或有效(只是暂时的失效,但还是留在当前的可执行文件中)

disable 断点编号
enable 断点编号

4.7 删除断点
在这里插入图片描述
5、查看和设置变量的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、控制程序执行

continue:让程序继续运行,直到下一个断点或者运行完为止
kill:结束当前程序的调试

next和step命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值