栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

linux下的C编程调试

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux下的C编程调试

linux下的C编程调试 概述:

Linux下C语言编程常用的编辑器是vim,编译器一般用gcc,编译链接程序用make,跟踪调试一般使用gdb,项目管理用makefile。

Gcc简介:

GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。

1. vim编辑hello.c


这里我们写了一个hello函数,然后进行函数调用。

2. 分别查看用下面指令编译的结果
$ gcc -E hello.c -o hello.i
$ gcc -S hello.i -o hello.s
$ gcc -c hello.s -o hello.s
$ gcc hello.o -o hello


此时我们可以看到分别生成了hello.c hello.i hello.s hello.o hello 5个文件。
注释:

无选项编译链接
用法:gcc hello.c
作用:将hello.c预处理、汇编、编译并链接形成可执行文件。

选项 -o
用法gcc hello.c -o hello
作用:将hello.c预处理、汇编、编译并链接形成可执行文件hello。
-o选项用来指定输出文件的文件名。

选项 -E
用法:gcc -E hello.c -o hello.i
作用:将hello.c预处理输出hello.i文件。

选项 -S
用法:gcc -S hello.i
作用:将预处理输出文件hello.i汇编成hello.s文件。

选项 -c
用法:gcc -c hello.s
作用:将汇编输出文件hello.s编译输出hello.o文件。

选项 -g
用法:gcc -g hello.c -o hello.exe
作用:将hello.c输出为hello.exe文件供gdb调试使用

3. 查看运行结果

输入指令

$ ./hello


我们可以看到输出“hello world!”。

4. 使用gdb调试函数调用

使用gdb调试首先生成一个sum.exe文件 ,输入命令:

$ gcc -g hello.c -o hello.exe

接下来对hello.exe文件进行gdb调试,输入命令:
$ gdb sum.exe

进入gdb调试界面

查看代码 list
设置断点 break
运行程序 run
查看函数 print
继续程序 continue
5. gcc过程改为makefile管理

    创建makefile文件, 输入命令:
$ touch makefile 
    编辑makefile文件,输入命令:
$ vim makefile

进入v编辑界面,将gcc过程输入并保存退出。

$ make


最后我们可以看到运行结果,输出“ hello world!”。

参考文章

Makefile文件与make命令
https://www.bilibili.com/video/BV1Mx411m7fm?spm_id_from=333.337.search-card.all.clickgcc,makefile,gdb,ide,eclipse i
https://blog.csdn.net/qq_51482074/article/details/123780724?spm=1001.2014.3001.5502

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/779928.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号