使用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,未剥离