当前位置: 首页 > news >正文

【ARM 嵌入式 编译系列 10.2 -- 符号表与可执行程序分离详细讲解】

文章目录

    • 符号表与可执行程序分离
      • 方法一 使用eu-strip
      • 方法二 使用 objcopy

上篇文章:ARM 嵌入式 编译系列 10.1 – GCC 编译缩减可执行文件 elf 文件大小
下篇文章:ARM 嵌入式 编译系列 10.3 – GNU elfutils 工具小结

符号表与可执行程序分离

接着上篇文章 ARM 嵌入式 编译系列 10.1 – GCC 编译缩减可执行文件 elf 文件大小 介绍,在前两篇文章中我们去掉了 可执行文件 test 中的很多内容,节省了大量的空间。由于我们把符号表也移除了,发生了coredump 我们通过gdb 工具也无法调试了。

Q: 那么我们是否可以把符号表信息保留,需要用符号表的时候在将符号表的信息导入
A:可以。

方法一 使用eu-strip

eu-strip 可以把文件的符号表保存起来,需要用的时候,导入需要的符号表就能调试 coredump文件了。

  1. 生成 release 版本的 test:
gcc -o test test.c
  1. 然后用 eu-strip 生成符号表:
eu-strip test -f test.sym

使用 eu-strip 生成的test.sym 后,可执行文件 test 中会多出多一个.gnu_deubg_link section,用来记录符号表的位置。

:~/temp$ readelf -S test
There are 30 section headers, starting at offset 0x3168:
...[25] .data             PROGBITS         0000000000004000  000030000000000000000010  0000000000000000  WA       0     0     8[26

相关文章:

【ARM 嵌入式 编译系列 10.2 -- 符号表与可执行程序分离详细讲解】

文章目录 符号表与可执行程序分离方法一 使用eu-strip方法二 使用 objcopy上篇文章:ARM 嵌入式 编译系列 10.1 – GCC 编译缩减可执行文件 elf 文件大小 下篇文章:ARM 嵌入式 编译系列 10.3 – GNU elfutils 工具小结 符号表与可执行程序分离 接着上篇文章 ARM 嵌入式 编译…...

Gin各种参数接收

Gin参数接收 文章目录 Gin参数接收1.各个参数的接收方法Gin中发送JSON数据Gin接收querystring数据Gin接收Form的参数Gin接收URI参数 2.参数绑定方式接收(更加方便)推荐一款软件 1.各个参数的接收方法 声明: 这里的c都是c *gin.Context中的c Gin中发送JSON数据 在传输或接受JS…...

【Python】进阶之 MySQL入门教程

文章目录 数据库概述Mysql概述Mysql安装与使用Navicat安装和使用Mysql终端指令操作Mysql和python交互订单管理案例实现 数据库概述 数据库的由来 发展历程说明人工管理阶段用纸带等进行数据的存储文件系统阶段数据存储在文件中数据库阶段解决了文件系统问题高级数据库阶段分布式…...

Word 2019打开.doc文档后图片和公式不显示(呈现为白框)的解决办法

Word 2019打开.doc文档后图片和公式不显示(呈现为白框)的解决办法 目录 Word 2019打开.doc文档后图片和公式不显示(呈现为白框)的解决办法一、问题描述二、解决方法1.打开 WORD 2019,点击菜单中的“文件”;…...

三个整数排序

描述 给定三个整数,请将它们按从小到大的顺序输出。 输入 输入为一行,包含三个整数,用空格分隔。 输出 输出为一行,包含三个整数,用空格分隔,表示排序后的结果。 输入样例 1 9 3 7 输出样例 1 3 …...

Nginx反向代理出现错误 502 bad gateway 案例解析

场景描述 Nginx uwsgi flask Flask框架写的程序,使用uwsgi启动,Nginx作为反向代理调用Flask应用。 Flask应用有些操作时间比较长,会超过1分钟,在网页端访问会出现错误: 502 bad gateway。 Nginx的错误日志中会出现错误&#xf…...

截止到目前全量主体总数有多少?

企业主体类型 企业主体类型有很多种,一般我们会分为公司(有限责任)、合伙企业、个人独资企业、个体经营户这些类别。 今天我们按照企业,个体,组织的分类方式来看各个主体的总数。 企业:统一社会信用代码…...

HTTP--Request详解

请求消息数据格式 请求行 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1 请求头 客户端浏览器告诉服务器一些信息 请求头名称: 请求头值 常见的请求头: User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息 可…...

Linux C++ 网络编程基础(2) : TCP多线程一个server对应多个client

目录 一、linux posix线程相关函数介绍二、tcp server基础版本三、tpc服务端多线程版本四、tpc客户端代码tcp编程时, 一个server可以对应多个client, server端用多线程可以实现. linux下多线程可以使用POSIX的线程函数, 下面给出服务端和客户端的代码. 一、linux posix线程相关…...

如何构建一个 NodeJS 影院微服务并使用 Docker 部署

文章目录 前言什么是微服务?构建电影目录微服务构建微服务从 NodeJS 连接到 MongoDB 数据库总结 前言 如何构建一个 NodeJS 影院微服务并使用 Docker 部署。在这个系列中,将构建一个 NodeJS 微服务,并使用 Docker Swarm 集群进行部署。 以下…...

BEVFusion(ICRA-2023)--01

说明:论文 BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation 原代码运行记录 原始环境:python 3.9 torch 1.12 (失败) 报错: python setup.py develop/mmdet3d/ops/ball_qu…...

Java——Iterator迭代器

在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素&#xff…...

GCC编译过程:预处理->编译->汇编->链接

目录 引言 概括介绍 一、预处理 二、编译 三、汇编 四、链接 总结 引言 当使用集成开发环境(IDE)进行C语言编程时,点击"编译"按钮后,整个C程序从源代码到可执行文件的生成过程会自动完成。IDE会在后台为我们执行C…...

JVM笔记 —— 出现内存溢出错误时时如何排查

一、出现内存溢出的几种情况 内存溢出错误分为StackOverflowError和OutOfMemoryError,前者是栈中出现溢出,后者一般是堆或方法区出现溢出,简称OOM 1. 栈溢出 StackOverflowError 栈溢出一般都是因为没有正确的结束递归导致的,无…...

多级嵌套引入组件导致Vue提示子组件未注册问题

发生此问题的时候是页面解析的时报错的, 所以可以放在beforeCreate中执行注册组件这个时候是在页面运行时执行的,运行时编译就结束了 第一种:可以在父组件中动态注册组件 export default{beforeCreate(){//require是commonJS,commonJS导入ES…...

vue3+element-plus组件下拉列表,数组数据转成树形数据

引入组件 可以直接在项目中引入element-plus表格组件,如果需要变成下拉列表样式需要添加以下属性: row-key 必填 最好给数字或唯一属性 , 给每个节点设置id 不填的话 没有办法实现展开效果 load 这个是动态添加数据的 前提(开启…...

【kubernetes】调度约束

目录 调度约束 Pod 启动典型创建过程如下 调度过程 指定调度节点 查看详细事件(发现未经过 scheduler 调度分配) 获取标签帮助 需要获取 node 上的 NAME 名称 给对应的 node 设置标签分别为 ggls 和 gglm 查看标签 修改成 nodeSelector 调度方…...

【深度学习MOT】SMILEtrack SiMIlarity LEarning for Multiple Object Tracking,论文

论文:https://arxiv.org/abs/2211.08824 文章目录 AbstractIntroduction2. 相关工作2.1 基于检测的跟踪2.1.1 检测方法2.1.2 数据关联方法 2.2 基于注意力的跟踪 3. 方法3.1 架构概述3.2 用于重新识别的相似性学习模块(SLM) Experimental Res…...

jmeter通过BeanShell对接口参数进行MD5和HmacSHA256加密【杭州多测师_王sir】

一、在eclipse里面编写MD5加密算法 package com.Base64;import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public class Md5Utils {public static String md5(String sourceStr) {String result "";try {MessageDigest md Mess…...

基于自适应曲线阈值和非局部稀疏正则化的压缩感知图像复原研究【自适应曲线阈值去除加性稳态白/有色高斯噪声】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...