> 信息中心 >

疑似GCC的BUG:全局变量寻址错误

来源:互联网 编辑:吕秀秀

有网友碰到过这样的问题:疑似GCC的BUG:全局变量寻址错误,问题详细内容为:

图中用红圈圈起来的C语句对应的汇编就是另一个红圈圈起来的汇编语句
函数原型

extern void_asm_allocOnePage(unsigned int linearAddress);

函数的实现在另一个汇编文件中 _asm_coreFun.asm

按照代码逻辑的话,图中栈顶的值应该为0x80400000,但是实际上是0x00000000,如果将变量“coreNextAddress”改为main函数的静态变量,会出现同样的问题,似乎静态区变量的寻址都有问题。本人水平有限,不知到底发生了什么。请问是不是GCC的BUG,且不知如何解决这个问题,希望有大神答疑解惑。

P S:不知信息有没有给全,如果需要更多的信息麻烦回复一下。

编译链接命令

gcc -m32 -I /mnt/d/MCOS/include -c -fno-stack-protector -o core/ini.o core/ini.c nasm -f elf -o core/_asm_sysCall.o core/_asm_sysCall.asm nasm -f elf -o core/_asm_coreFun.o core/_asm_coreFun.asm ld -m elf_i386 -s -e main -Ttext 0x80010500 -o core/ini.bin core/ini.o core/_asm_sysCall.o core/_asm_coreFun.o core/_asm_interrupt.o GCC C语言 汇编 ,我搜你通过互联网收集了相关的一些解决方案,希望对有过相同或者相似问题的网友提供帮助,具体如下:

解决方案1:
加载ELF文件的时候出错了,自己的问题,不是GCC的问题。

编译U-BOOT 到底是用arm-linux-gcc 还是arm-softfloat-linux-gnu

gcc是linux系统下面用来将代码编译成一个可执行程序的手段。编译出来的是适用于linux系统的可执行二进制文件。可执行程序其实就是一堆的0101二进制机器码。这些机器码...

CentOS中安装 gcc-4.2.1.tar.bz2 执行 ./configuare 文件时,后...

yum install gcc 就可以了

在Mac上运行codeblocks的时候出现这个错误,怎么办...

答:你的输出,大概的意思是说执行g++命令的时候,没有权限。 你需要给你的开发相关的程序进行授权,或者你使用sudo命令切换用户后重试。 没做过苹果系统相关的东西,上面答案仅供参考.

ubuntu编译osmocombb完要多久

答:ubuntu编译GNUARM以及OsmocomBB环境方法如下,时间的话看你代码速度啦 以下所有操作基于Ubuntu Linux下,所以基于Ubuntu、Debian等Linux版本均可使用。 一、以...


请注意,本站信息均收集自互联网,相关信息仅供参考,医疗等重要信息请以正规途径为最终意见,本站不承担任何责任!

www.wosoni.com false 互联网 http://www.wosoni.com/blogcnk/mm/ccdjde.html report 1021 解决方案1:加载ELF文件的时候出错了,自己的问题,不是GCC的问题。

热门图片