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

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

  1. vs编译c语言停止工作运行库mt,vc++编译时运行库选择(/MT/MTd/MD/MDd)

    vc++编译时运行库选择(/MT/MTd/MD/MDd) vc++编译时运行库选择(/MT./MTd./MD./MDd) 在vs中,项目属性 ->C/C++ ->代码生成 ->运行库 ...

  2. 【BUG】ELF文件执行时出现段错误Segmentation fault,解决:使用010编辑器修改ELF文件不可执行段权限

    问题:段错误,.eh_frame不可执行. 需求:改执行权限. 工具:010 Editer,我的版本:12.0.1 Windows 10. 工具下载:010编辑器官网下载页. 第一步 查看段的执行权限 ...

  3. Linux中GCC编译工具集中个软件的用途、gcc的简单编译以及ELF文件格式

    文章目录 一.gcc编译工具集中各软件的用途 1.1 GCC 1.2 Binutils 1.3 C运行库 二.简单编译 2.1 代码编译过程 2.2 多个程序文件的编译 2.3 检错 2.4 库文件连 ...

  4. GCC编译过程与动态链接库和静态链接库

    1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可 ...

  5. Linux环境下段错误的产生原因及调试方法小结

    From:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基 ...

  6. [转]Linux环境下段错误的产生原因及调试方法小结

    最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的"段错误"(Segme ...

  7. Linux下段错误以及调试方法

    1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于" ...

  8. Linux环境下段错误的产生原因及调试方法

    1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于" ...

  9. Linux平台Segmentation fault(段错误)调试方法

    1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况. 2. 段错误的原因 段错 ...

最新文章

  1. python 图像处理模块pillow
  2. 高一升学计算机,(有答案)2016年上学期高一年级对口升学第一次月考计算机应用试题资料讲解(9页)-原创力文档...
  3. 循序渐进学.Net Core Web Api开发系列【14】:异常处理
  4. 从HashiCorp Nomad对上百万容器进行调度所学到的经验
  5. NLP中各框架对变长序列的处理全解
  6. 设计模式:访问者模式(Vistor)
  7. python小数补0,python用零填充小数
  8. 网页选项卡应用4-12
  9. EGE基础入门篇(五):换上我的彩色画笔
  10. 输入法里打出特殊符号
  11. getc()、getchar()、getch() 和 getche() 的区别
  12. wrf模式计算机配置,科学网-WRF模式的运行-张乐乐的博文
  13. DecisionTreeClassifier实例:Iris莺尾花分类
  14. Armbian bullseye 系统OMV 6.x安装分享
  15. 服务器ftp文件不能共享文件夹权限,ftp服务器共享文件夹权限设置
  16. 《小朱家的爬虫》第二课------- 编写第一个网络爬虫
  17. CSS中的透明度设置
  18. RIP路由防止环路的方法
  19. 从 Hadoop 到云原生:Kyligence 在云原生巨浪中的思考(1)
  20. PTA 数组 7-2 逆序存放数组中的数据,并输出指定元素

热门文章

  1. 找工作,姿势要帅气。
  2. 过分了,这样阅读Datasheet(数据手册)合适吗?
  3. 【拆解】华为Mate Xs ,胶水用的出乎意外的少!
  4. 仅靠一杯奶茶钱8.8元,你就能转到人工智能专业?
  5. System Verilog学习小结
  6. easyui数据请求两个url_easyui使用是调用两次后台请求(解决)
  7. 计算机检索高考投档线,投档分数线是什么意思 2018各大学投档线是多少
  8. c# 获取html中指定标签信息,c# – 如何解析图像标签的HTML字符串以获取SRC信息?...
  9. 计算机函数select,请问关于select函数的操作程序?
  10. project 模板_不会绘制横道图?18个施工进度计划横道图模板,可一键自动生成,方便快捷易操作,直观形象,相当好用...