linux的静态编译elf无法调试,macos-运行arm-elf-gcc编译代码时出现段错误

使用MacPorts,我刚刚在我的MacBook Pro上安装了arm-elf-gcc.这项工作完美无缺,并且一切运行正常.

但是,在用C和C编译了一个简单的hello world测试程序并尝试在目标板(运行Debian Linux的基于ARM9的板)上运行之后,它们立即出现故障.

由于目标板的可用工具有限且没有gdb,我对如何进行调试感到有些困惑.我已经使用Linux托管的交叉编译器成功构建并运行了其他代码,因此它应该可以工作.

有任何想法吗?

按照我已经构建并运行gdbserver的建议,我在主机上的gdb中获得了以下内容:

程序收到信号SIGSEGV,分段故障.

0x00000000 in ?? ()

我认为这可能是标准c库的问题,因此我删除了所有调用,只剩下一个返回0的空main,使用-Wall -g hello-arm.cpp -static进行了编译.作为测试,我使用Linux托管的交叉编译器编译了相同的源,并且可以正常运行并退出.我可以看到的唯一区别是Linux编译版本的大小超过两倍,并且file命令的输出有所不同:

arm-elf-gcc:ELF 32位LSB可执行文件,ARM,版本1,静态链接,未剥离

arm-*-linux:ELF 32位LSB可执行文件,ARM,版本1,静态链接,用于GNU / Linux 2.4.18,未剥离

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值