专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
嵌入式
5.2嵌入式linux程序编译与调试
2019-07-13 00:44
发布
生成海报
站内文章
/
嵌入式Linux
18101
0
1503
实验二 嵌入式linux程序编译与调试
实验目的:
学会使用及配置vim
掌握gcc编译器使用
掌握使用Gdb单步调试程序的方法
实验要求:
熟悉使用该节所介绍的vim创建、编辑、保存文件。
分别用gcc实现预处理、编译、汇编、链接四个过程;
使用gcc编译多文件工程,并制作编译脚本。
利用Gdb单步调试修正结果错误的程序
实验步骤:
用gcc实现预处理、编译、汇编、链接四个过程,使用gcc编译多文件工程,并制作编译脚本。
1、gcc处理编译的四个过程
、源代码
(2)、预处理
生成main.i预处理文件实现头文件、宏、预编译展开
(3)、编译
生成main.S汇编文件
(4)、汇编
最后调用as汇编器,从汇编文件生成main.o文二进制目标文件
(5)、链接
最后调用ld链接器,把目标文件链接成可执行文件
2、多文件工程编译
(1)、文件目录结构
自定义头文件放在inc目录内,辅助模块源文件放在src目录内
(2)、编译脚本
编译出带调试信息的可执行文件
(3)、执行编译
(4)、编译结果
运行调试通过后,可以strip掉多余的符号信息,进行发布
二、利用Gdb单步调试修正结果错误的程序
1、错误程序源码,
2、编译程序
3、运行程序
逆向字符串打印结果不能正常显示!
4、利用Gdb调试定位问题
(1)、启动gdb载入调试程序
(2)、断点到有问题的函数
(3)、执行程序,运行至断点处
(4)、显示问题函数代码
(5)、断点到问题产生点
(6)、继续执行,在问题产生点停下
(7)、显示问题变量
字符串逆向拷贝时数组位置向后多偏移了一位:
应该改为:
(7)、修改代码,程序编译运行验证
实验心得: 该实验是实现嵌入式linux程序的简单编译和调试的实现,主要是让我们学会如何去调试,深刻体会程序执行的每一个步骤,理解程序运行的实际过程。
Ta的文章
更多
>>
Android Camera架构浅析
0 个评论
嵌入式Linux解析XML开发之:(一)XML基础
0 个评论
5.2嵌入式linux程序编译与调试
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮