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,未剥离
linux的静态编译elf无法调试,macos-运行arm-elf-gcc编译代码时出现段错误相关推荐
- vs编译c语言停止工作运行库mt,vc++编译时运行库选择(/MT/MTd/MD/MDd)
vc++编译时运行库选择(/MT/MTd/MD/MDd) vc++编译时运行库选择(/MT./MTd./MD./MDd) 在vs中,项目属性 ->C/C++ ->代码生成 ->运行库 ...
- 【BUG】ELF文件执行时出现段错误Segmentation fault,解决:使用010编辑器修改ELF文件不可执行段权限
问题:段错误,.eh_frame不可执行. 需求:改执行权限. 工具:010 Editer,我的版本:12.0.1 Windows 10. 工具下载:010编辑器官网下载页. 第一步 查看段的执行权限 ...
- Linux中GCC编译工具集中个软件的用途、gcc的简单编译以及ELF文件格式
文章目录 一.gcc编译工具集中各软件的用途 1.1 GCC 1.2 Binutils 1.3 C运行库 二.简单编译 2.1 代码编译过程 2.2 多个程序文件的编译 2.3 检错 2.4 库文件连 ...
- GCC编译过程与动态链接库和静态链接库
1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可 ...
- Linux环境下段错误的产生原因及调试方法小结
From:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基 ...
- [转]Linux环境下段错误的产生原因及调试方法小结
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的"段错误"(Segme ...
- Linux下段错误以及调试方法
1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于" ...
- Linux环境下段错误的产生原因及调试方法
1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于" ...
- Linux平台Segmentation fault(段错误)调试方法
1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况. 2. 段错误的原因 段错 ...
最新文章
- python 图像处理模块pillow
- 高一升学计算机,(有答案)2016年上学期高一年级对口升学第一次月考计算机应用试题资料讲解(9页)-原创力文档...
- 循序渐进学.Net Core Web Api开发系列【14】:异常处理
- 从HashiCorp Nomad对上百万容器进行调度所学到的经验
- NLP中各框架对变长序列的处理全解
- 设计模式:访问者模式(Vistor)
- python小数补0,python用零填充小数
- 网页选项卡应用4-12
- EGE基础入门篇(五):换上我的彩色画笔
- 输入法里打出特殊符号
- getc()、getchar()、getch() 和 getche() 的区别
- wrf模式计算机配置,科学网-WRF模式的运行-张乐乐的博文
- DecisionTreeClassifier实例:Iris莺尾花分类
- Armbian bullseye 系统OMV 6.x安装分享
- 服务器ftp文件不能共享文件夹权限,ftp服务器共享文件夹权限设置
- 《小朱家的爬虫》第二课------- 编写第一个网络爬虫
- CSS中的透明度设置
- RIP路由防止环路的方法
- 从 Hadoop 到云原生:Kyligence 在云原生巨浪中的思考(1)
- PTA 数组 7-2 逆序存放数组中的数据,并输出指定元素
热门文章
- 找工作,姿势要帅气。
- 过分了,这样阅读Datasheet(数据手册)合适吗?
- 【拆解】华为Mate Xs ,胶水用的出乎意外的少!
- 仅靠一杯奶茶钱8.8元,你就能转到人工智能专业?
- System Verilog学习小结
- easyui数据请求两个url_easyui使用是调用两次后台请求(解决)
- 计算机检索高考投档线,投档分数线是什么意思 2018各大学投档线是多少
- c# 获取html中指定标签信息,c# – 如何解析图像标签的HTML字符串以获取SRC信息?...
- 计算机函数select,请问关于select函数的操作程序?
- project 模板_不会绘制横道图?18个施工进度计划横道图模板,可一键自动生成,方便快捷易操作,直观形象,相当好用...