社区
VxWorks
帖子详情
声明一个变量导致编译出来的文件加载不起来的问题
suncs2001
2014-06-26 11:55:50
在正常的代码基础上,在某个c文件中声明了一个32位变量并且赋初值,发现编译过的bin文件加载不起来,而且是在加载的很早的阶段就复位了。 把这个变量去掉再编译加载又没问题了。如果声明这个32位变量并且不赋值,也没有问题。
怀疑是因为多声明了一个变量,导致数据发生了偏移,怀疑踩到了什么东西,导致在加载过程中错乱。现在有反汇编文件,不知道这样的问题该如何分析是哪里出了问题。 大家有没有什么好的思路啊。
...全文
640
7
打赏
收藏
声明一个变量导致编译出来的文件加载不起来的问题
在正常的代码基础上,在某个c文件中声明了一个32位变量并且赋初值,发现编译过的bin文件加载不起来,而且是在加载的很早的阶段就复位了。 把这个变量去掉再编译加载又没问题了。如果声明这个32位变量并且不赋值,也没有问题。 怀疑是因为多声明了一个变量,导致数据发生了偏移,怀疑踩到了什么东西,导致在加载过程中错乱。现在有反汇编文件,不知道这样的问题该如何分析是哪里出了问题。 大家有没有什么好的思路啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
woquNOKIA
2014-11-18
打赏
举报
回复
编译器不支持在语句后边定义变量,必须把变量的定义放到语句的前边
ghyd
2014-06-30
打赏
举报
回复
给你个提示,不知道有用没,全局变量声明后不赋值时,是放在代码的bss段的,声明的同时赋值的,放在data段,是不是还是你的代码data段空间有泄漏呢? 你可以尝试把全局变量改一下,用静态局部变量替代,看是否还有这个问题。
熊已出没
2014-06-29
打赏
举报
回复
你不把代码放上来怎么说了清楚. 就算你说清楚了,也不见得听了清楚.
suncs2001
2014-06-27
打赏
举报
回复
没说清楚,不是编译内核,相当于是编译应用程序,最终会编译出bin文件,放到硬件的板子上加载,这个bin文件就是硬件板子上运行的所有软件代码。 另外就是那个变量是定义,不是单纯的声明,是要赋初值的。定义的变量和声明的变量所在内存中的位置不一样。定义的话应该是在代码段我记得。 当时就是怀疑因为定义这个变量导致后面的空间里的东西踩到什么地方的。但是整个地址空间很大,不知道怎么分析了。
chenxu24511
2014-06-27
打赏
举报
回复
没接触过vxwork,但想学,小弟新手,全局只初始为0,不初始化一般默认0。局部就可以下面初始化吗。
woshi_ziyu
2014-06-27
打赏
举报
回复
查看一下变量定义之后所分配的地址空间
jackydi
2014-06-27
打赏
举报
回复
楼主的问题说的很模糊,你是编译的应用程序,还是内核?如果是内核的话,是否可能与内核中原本的变量名冲突?如果是应用程序的话,怎么编译出bin文件呢? 只有定义变量的时候才可以初始化,声明变量的时候不能初始化,否则就变成定义变量了。
《C深度解析》第一章 c
编译
、链接视频教程
课程内容: 1. IDE 与 源
文件
开发方式的异同 2.
编译
的详细过程 3.... 可执行目标
文件
的格式,以及可执行目标
文件
的
加载
、执行 8. 程序内存结构介绍 代码和数据(常量、
变量
)是如何存放在程序的内存结构中的
如何在不同
文件
中使用less
声明
的全局公共
变量
1:假设我们有
一个
全局的less
变量
文件
’./style/variable.less’
文件
如果想要在组件样式中使用这些
文件
,我们需要引入这些
文件
,但是这样做会带来很多
问题
,代码冗余,不好维护。 我们迫切需要一种全新的更优雅的...
C语言
变量
的定义与
声明
,为什么全局
变量
不能赋值
文章目录一、对C语言程序的一些补充二、定义域
声明
2.1.什么是
变量
2.2.如何定义
变量
2.3.为什么要定义
变量
2.4.定义
变量
的本质2.5.
变量
声明
的本质2.6.定义和生命的区别 一、对C语言程序的一些补充 对于
一个
代码: #...
JVM
加载
class
文件
原理
文章目录1 简单介绍1.1 跨平台运行1.2
编译
机制2 类
加载
机制2.1
加载
方式2.2
加载
过程2.2.1
加载
2.2.2 链接2.2.2.1 验证2.2.2.1.1
文件
格式验证2.2.2.1.2 元数据验证2.2.2.1.3 字节码验证2.2.2.1.4 符号引用验证2.2....
java机制:类的
加载
详解(静态类,静态
变量
,静态方法,静态代码块,构造代码块,成员
变量
,成员方法,父类...)
“代码
编译
的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是变成语言发展的一大步”,这句话出自《深入理解JAVA虚拟机》 一.源码
编译
代码
编译
由JAVA源码
编译
器来完成。主要是将源码
编译
成字节码...
VxWorks
2,179
社区成员
2,916
社区内容
发帖
与我相关
我的任务
VxWorks
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
复制链接
扫一扫
分享
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章