*.map文件

2023-05-16

    关于linux程序的map文件,网络上资料很少,大概看了下map文件,虽然理解的不是很透彻,但是还是对程序的编译、运行、内存分配有了一点新的认识。

    1). map文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,是整个程序工程信息的静态文本,通常由linker生成。(抄至网络)
    map文件保存整个工程的静态文本信息,里面有所有函数的入口地址。
    通过查看map文件,我们可以找到代码段(.text),全局未初始化区(.bss),数据段(.data),还有些不懂的.pdata、.edata、.rsrc、.stab等。
    (编译原理是硬伤,有时间一定要学学。)

    2). linux下编译生成map文件
    g++ -g  mapFile.cpp -Wl,-Map,mapFile.map

    3). map文件的作用是,我们可以根据程序产生错误地址在map文件中找到相应的函数、变量地址。
    在这里,我有一个疑问: 一直以为程序编译后的地址为逻辑地址(段选择符+偏移地址),根据段选择符找到段基址、加上偏移地址才得到线性地址,但是在map文件中得到的却是线性地址。
    为什么会是这样呢?网上找到个答案,但不敢完全认同。
    Linux中逻辑地址等于线性地址。为什么这么说呢?因为Linux所有的段(用户代码段、用户数据段、内核代码段、内核数据段)的线性地址都是从 0x00000000 开始,长度4G,这样 线性地址=逻辑地址+ 0x00000000,也就是说逻辑地址等于线性地址了。 

    还是有很多的疑惑和不确定,暂且记录下来,待我知识体系完善了,再来更新吧。

    结论:去学习、思考、实践、创新,否则只能生活在自以为是的那么一个小圈子里自“愚”自乐。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

*.map文件 的相关文章

  • 微信小程序map作为子组件时定位,移动等功能报错

    前言 在使用小程序的腾讯地图时发现一个问题 map这个组件作为单独一个页面的时候是没有问题的 但是 如果作为子组件的时候 效果就出不来 而且所有的方法 比如定位 移动等都会报错失效 目录 失败代码 单独组件是成功代码 作为子组件失败 正确代
  • echarts地图map

    在vue中使用echarts绘制图表 npm install echarts save 全局安装echarts 具体代码及注释如下
  • STL——map、set等红黑树结构的最后一个元素

    map set等背后由于红黑树的关系 插入元素后便成为 平衡 搜索树了 所以末尾元素默认为最大值 得到该值的方法 1 利用 rbegin 反向迭代器 int main int argc char argv map
  • map和set的概念及使用

    1 什么是关联式容器 关联式容器也是用来存储数据的 与序列式容器不同的是 其里面存储的是
  • 目标检测性能评价指标(mAP、IOU..)

    一 mAP 这里首先介绍几个常见的模型评价术语 现在假设我们的分类目标只有两类 计为正例 positive 和负例 negtive 分别是 1 True positives TP 被正确地划分为正例的个数 即实际为正例且被分类器划分为正例的
  • 编程经验分享(寻找map中的max与min)——力扣·百战炼磨(一)

    2021 4 14 力扣第47场双周赛 虚拟竞赛 第三题 所有子字符串美丽值之和 力扣 1781 以下经验来自于对该题目的解决 一个字符串的 美丽值 定义为 出现频率最高字符与出现频率最低字符的出现次数之差 比方说 abaacc 的美丽值为
  • vue-cli3.0引入高德3d动画效果方法一:

    前言 因为两个方法代码量都特别大 这里分2个页面详细说一下 这个页面是方法一 包括vue cli3 0中使用和html中使用两种示例 注意 这里有想看另一种方法的童鞋请点入口 https blog csdn net qq 41619796
  • 目标检测模型的评价指标 mAP

    在使用机器学习解决实际问题时 通常有很多模型可用 每个模型都有自己的怪癖 quirks 并且基于各种因素 性能会有所不同 模型性能的评定都是在某个数据集上进行的 通常这个数据集被称为 validation 或 test 数据集 模型性能的评
  • leaftlet入门教程一

    1 实时输出坐标 监听 mousemove 事件 map on mousemove e gt let latlng e latlng console log latlng lat 30 59 lng 114 32 取消 mousemove
  • JavaScript学习笔记(11) map、reduce

    map map 方法定义在JavaScript的Array中 调用Array的map 方法 传入我们自己的函数 就可以得到结果 来一个例子 use strict function pow x return x x var arr 1 2 3
  • mybatis中使用map批量更新

    最近项目中会用到批量更新功能 数据是存在map中的 key作为更新的id 而value作为更新的值 纠结了很久最后算是解决了 特此记录 希望对有需要的有一定帮助
  • 内网离线地图

    1 第一种瓦片数据源 MapDownloader 链接 https pan baidu com s 1Hz HcA5QhtGmjLNezC pQ 提取码 6lek GISMysqlToLocalFile 链接 https pan baidu
  • 目标检测中的MAP(无抄袭)

    个人理解 如果写的有问题可以留言交流 转载请标明出处 谢谢 参考链接 内含代码 https github com rafaelpadilla Object Detection Metrics 人家写的比我好 我只是用中文把理论小总结一下 懒
  • 详解map、set、multimap、multiset的使用

    作者 阿润菜菜 专栏 C 目录 前言 set multiset的使用 1 set 2 multiset 3 什么时候应该使用multiset而不是set map multimap的使用 1 map 2 multimap 3 什么时候应该使用
  • C++ auto遍历无法直接修改map的数据

    对于std map 当使用for auto it myMap 这种范围循环形式时 实际上是使用了const迭代器进行遍历 这意味着你无法通过该迭代器直接修改std map中的值 范围循环使用的是容器的begin 和end 函数返回的迭代器
  • openLayers画椭圆

    前言 OpenLayers可以通过代码绘制多种几何形状 也可以通过draw类型的交互组件绘制几何形状 官方实例提供了类如圆 折线 矩形 星形等方法 除此之外 椭圆这种图形其实也是非常常见的几何图形 但是官方没有提供现成的API 本文从使用代
  • 统计和——前缀和

    题目大概 给定一个长度为n的整数数组和一个整数k 你需要找到该数组中和为k的连续子数组的个数 测试样例 输入 5 3 1 1 2 1 1 输出 2 思路1 利用for循环暴力枚举子数组 并且求和 计数 时间复杂度为O n 3 如果数据大于了
  • 2020年团体程序设计天梯赛-总决赛 L2-2 口罩发放

    L2 2 口罩发放 25分 输入格式 输出格式 输入样例 输出样例 样例解释 题解 L2 2 口罩发放 25分 为了抗击来势汹汹的 COVID19 新型冠状病毒 全国各地均启动了各项措施控制疫情发展 其中一个重要的环节是口罩的发放 某市出于
  • C++中 Map的了解与基本用法(代码演示+自我总结+map中一对多的用法)

    C 中 map的了解与基本用法 代码演示 一 map的基本认识 Map是STL的一个关联容器 它提供一对一 其中第一个可以称为关键字 每个关键字只能在map中出现一次 第二个可能称为该关键字的值 的数据处理能力 由于这个特性 它完成有可能在
  • Java实体类转Map、Map转实体类

    1 创建entity User java package com jeff entity public class User private String userName private String password private I

随机推荐

  • 1——Qt安装(ubuntu16.04 + Qt 5.14.2)

    下载Qt http download qt io archive qt 注 xff1a 下载Qt 5 14 2文件夹下的 run 文件 安装Qt 进入下载文件所在位置 xff0c 打开命令行终端 chmod 777 qt opensourc
  • git设置单个仓库用户名以及密码

    有些时候我们的服务器可能要部署多个git仓库 xff0c 不同git仓库的用户名以及密码都是不一样的 xff0c 此时需要我们设置单个仓库的用户名以及密码 1 git设置用户名以及邮箱 命令如下 xff1a git config user
  • php 多版本切换

    项目开发中实际会存在 xff0c php版本不同的情况 下面看具体实现方法 以下均是在 windows 下操作完成 1 先看一下我本地的 php 版本 我这里默认版本是php7 1 xff0c 下面看一下环境变量配置 默认版本不需要改 ph
  • apt-get 安装某个包时出现各种依赖包没有安装、版本不对互相套娃的一种解决方法

    错误信息 Depends 某某包 but it is not going to be installed 或者 Depends 某某包 61 某某版本 but 某某版本 is to be installed 本人是用的树莓派raspbian
  • Python 中更优雅的日志记录方案

    在 Python 中 xff0c 一般情况下我们可能直接用自带的 logging 模块来记录日志 xff0c 包括我之前的时候也是一样 在使用时我们需要配置一些 Handler Formatter 来进行一些处理 xff0c 比如把日志输出
  • 用Python抓包工具查看周边拼车情况

    说起Python爬虫 xff0c 很多人第一个反应可能会是Scrapy或者Pyspider xff0c 但是今天文章里用到是Python下一个叫Mitmproxy的抓包工具 xff0c 对付一些非常规的数据获取还是很有效的 不过凡事都是有利
  • Origin(教育版)无法更改语言是灰色的办法

    用edu后缀的邮箱可以申请正版Origin pro xff0c 但是本人下载下来后是英文版 xff0c 绘图的时候里面很多的专有名词真的一头雾水 xff0c 查看网上的教程说修改注册表 xff0c 试了后发生错误 xff0c 再次打开还是原
  • centos虚拟机切换为命令行模式

    打开命令终端Terminal 输入以下 systemctl set default multi user target 设置成命令模式 或 systemctl set default graphical target 设置成图形模式 最后
  • ubuntu操作不当,桌面图标和菜单栏消失怎么办

    最近配置一些文件没有成功 xff0c 重启后 xff0c 桌面只剩下文件和回收站 xff0c 我们可以通过终端输入指令来解决这个问题 xff0c 亲测有效 先用apt get install指令重装桌面 xff1a 快捷键或者右键打开终端
  • 应用宝-ysdk-米大师 对接道具直购服务器端下单模式 java服务端开发日志

    用于接收回调请求的linux服务器证书配置 xff1a 回调服务器配置分三种 xff0c 前两种是当服务部署在腾讯云上时的配置方式 xff0c 第三种为服务部署在自己服务器上是的配置方式 xff1a hosting应用on CVM xff0
  • 使用python开发json、csv数据格式转换工具

    使用python开发json csv数据格式转换工具 json和xml是业界常用的数据格式 xff0c 而游戏行业经常使用csv配表 xff0c 包括本地化文本和数值 本文介绍csv和json序列化 逆序列化相关的python库 xff0c
  • 【笔记】Ubuntu字体报错

    Warning Cannotconvertstring 34 adobe helvetica medium r normal 120 75 75 p iso8859 1 34 to type FontStruct ENVI 43 IDL o
  • python3-端口扫描(TCP connect扫描,SYN扫描,FIN扫描)

    利用python3进行端口扫描 xff0c TCP的方式有connect扫描 xff0c SYN扫描 xff0c FIN扫描 xff0c NULL扫描 xff0c ACK扫描 xff0c Xmas xff0c windows扫描 本次展示前
  • DirectX(dll)修复软件推荐4.2增强版

    我们经常会遇到在重装完系统后 xff0c 软件或者游戏无法正常运行 xff0c 提示缺少dll文件 xff0c 这时候要么去百度搜索相应dll文件 xff0c 不仅费事还不好找 xff0c 要么就是用DirectX Repair自动扫描安装
  • 未封装的扩展程序

    查看插件 程序展示未封装的扩展程序 如下图 没显示调试工具的原因是用了生产环境的版本或是压缩的vue版本 xff0c 或是没有勾选 xff1a 允许访问文件网址 https span class token punctuation span
  • 2019小结

    2019已经过去 xff0c 回想这过去的一年 xff0c 是近几年来最忙碌的一年 年初 xff0c 参加了一场读书会 xff0c 和公司同事一起读书 一本优秀的书是作者思想的精华 xff0c 通过读书可以认识和了解自己思维以外的世界 虽然
  • 继续前行

    很久没有更新日志了 xff0c 很久没有写博客了 xff1b 我知道我有的时候很忙 xff0c 我知道当前还有更重要的事情 xff0c 我知道事情是做不完的 但不管怎么样 xff0c 我该停下脚步想一想 xff0c 怎么去走好下一步 202
  • 《即兴演讲》读书笔记

    这是一本我一直在寻找的书 xff1b 因为我从事技术工作 xff0c 十多年来每天都和计算机打交道 xff0c 很少有机会站在台上讲话 xff1b 我对演讲是敬畏的 xff0c 想上台表现自己但心里又充满了恐惧 xff1b 偶尔的上台机会只
  • 读“赵4老师”言论

    在查看CSDN论坛时 xff0c 发现 赵4老师 无处不在 xff0c 赵4老师 通常不会直接给出答案 xff0c 而是直接复制言论 赵4老师的语言虽然很 犀利 xff0c 但仔细想想 xff0c 有些还是有道理的 xff0c 至少帮助我从
  • *.map文件

    关于linux程序的map文件 xff0c 网络上资料很少 xff0c 大概看了下map文件 xff0c 虽然理解的不是很透彻 xff0c 但是还是对程序的编译 运行 内存分配有了一点新的认识 1 map文件是程序的全局符号 源文件和代码行