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

Visual Studio(2022)生成链接过程的.map映射文件以及.map映射文件的内容说明

微软的官方说明

/MAP(生成映射文件) | Microsoft Learn

设置步骤

        1. 右键项目属性, 连接器 -> 常规 -> 启用增量链接,设置为否。如下图:

        2. 连接器 -> 调试

                生成调试信息  设置为 生成调试信息 (/DEBUG)

                生成程序数据库文件  设置为 指定路径文件名,默认系统会自动设置

                生成映射文件  设置为  是 (/MAP)

                映射文件名  设置为 指定的完整路径, 例如 aaa/Debug/test.map

                具体如下图:

                

                重新生成项目,成功生成,如下图所示:

部分.map文件示例内容如下所示:

demo_ccwindowsTimestamp is 64eed0a8 (Wed Aug 30 13:16:24 2023)Preferred load address is 0000000140000000Start         Length     Name                   Class0001:00000000 00003290H .text$mn                CODE0001:00003290 00000040H .text$mn$00             CODE0001:000032d0 00000090H .text$x                 CODE0002:00000000 00000240H .idata$5                DATA0002:00000240 00000038H .00cfg                  DATA0002:00000278 00000008H .CRT$XCA                DATA0002:00000280 00000008H .CRT$XCAA               DATA0002:00000288 00000008H .CRT$XCZ                DATA0002:00000290 00000008H .CRT$XIA                DATA0002:00000298 00000008H .CRT$XIAA               DATA0002:000002a0 00000008H .CRT$XIAC               DATA0002:000002a8 00000008H .CRT$XIZ                DATA0002:000002b0 00000008H .CRT$XPA                DATA0002:000002b8 00000008H .CRT$XPZ                DATA0002:000002c0 00000008H .CRT$XTA                DATA0002:000002c8 00000008H .CRT$XTZ                DATA0002:000002d0 00000000H .gehcont$y              DATA0002:000002d0 00000000H .gfids$y                DATA0002:000002d0 00000ab0H .rdata                  DATA0002:00000d80 00000080H .rdata$CastGuardVftablesA DATA0002:00000e00 00000080H .rdata$CastGuardVftablesC DATA0002:00000e80 00000080H .rdata$voltmd           DATA0002:00000f00 00000360H .rdata$zzzdbg           DATA0002:00001260 00000008H .rtc$IAA                DATA0002:00001268 00000008H .rtc$IMZ                DATA0002:00001270 00000008H .rtc$IZZ                DATA0002:00001278 00000008H .rtc$TAA                DATA0002:00001280 00000008H .rtc$TMZ                DATA0002:00001288 00000008H .rtc$TZZ                DATA0002:00001290 0000042cH .xdata                  DATA0002:000016bc 00000000H .edata                  DATA0002:000016bc 0000003cH .idata$2                DATA0002:000016f8 00000018H .idata$3                DATA0002:00001710 00000240H .idata$4                DATA0002:00001950 0000059eH .idata$6                DATA0003:00000000 00020060H .data                   DATA0003:00020060 00000620H .bss                    DATA0004:00000000 00000468H .pdata                  DATA0005:00000000 00000060H .rsrc$01                DATA0005:00000060 00000180H .rsrc$02                DATAAddress         Publics by Value              Rva+Base               Lib:Object0000:00000000       __AbsoluteZero             0000000000000000     <absolute>0000:00000000       ___safe_se_handler_count   0000000000000000     <absolute>0000:00000000       ___safe_se_handler_table   0000000000000000     <absolute>0000:00000000       __arm64x_extra_rfe_table   0000000000000000     <absolute>0000:00000000       __arm64x_extra_rfe_table_size 0000000000000000     <absolute>0000:00000000       __arm64x_native_entrypoint 0000000000000000     <absolute>

        有了这些信息,之后就可以通过.map文件查看编译生成的代码细节,以及分析相关程序问题。       

关于.map文件结构的细节示例说明

Start

Length

Name

Class

0001:

00000000

00000304H

.text

CODE

       PE 格式 - Win32 apps | Microsoft Learn

      PE 格式 - Win32 apps | Microsoft Learn

     .debug 段,在对象文件中用于包含编译器生成的调试信息,在映像文件中用于包含生成的所有调试信息。 本段说明如何在对象和映像文件中打包调试信息。PE 格式 - Win32 apps | Microsoft Learn

     .bss 段(Block Started by Symbol segment), 未初始化数据(自由格式),一般在初始化时bss 段部分将会清零。bss段属于静态内存分配,即程序一开始就将其清零了。这里主要存放没有初始化的全局变量或者初始化为0值的全局变量。

     .sbss 段,用于存放 near ptr 寻址或者叫相对寻址的未初始化数据。

     .text 端,存放执行程序的代码。

     .data 段,初始化数据(自由格式),保存已经初始化的全局变量。

     .rdata 段,保存已经初始化的只读数据。

     .drective 段,指令段。链接器在处理信息后会删除 .drectve 节,因此该节不会出现在所链接的映像文件中。

     .edata 段,存放export symbols,包含有关其他映像可以通过动态链接访问的符号的信息。 导出的符号通常在 DLL 中找到,但 DLL 也可以导入符号。

     .idata 段,存放import symbols, 导入符号的所有映像文件都包含此.idata端。

     .pdata 段,包含用于异常处理的函数表条目的数组。

     .reloc 段,基址重定位表包含映像中所有基址重定位的条目。

     .tls 段, 为静态线程本地存储 (TLS) 提供直接 PE 和 COFF 支持。

     .rsrc 段,  资源按多级二进制排序树结构编制索引。

     .cormeta 段, 存放CLR元数据。

     .sxdata 段,对象的有效异常处理程序在该对象的 .sxdata 段中列出。

其他:

    1. vs生成的map文件详解_vs生成map文件_ivy_0709的博客-CSDN博客

    2. MAP File Contents - Debugging Applications - Visual Basic Planet

    3. Finding Crash Information Using the MAP File - CodeProject

...

相关文章:

Visual Studio(2022)生成链接过程的.map映射文件以及.map映射文件的内容说明

微软的官方说明 /MAP&#xff08;生成映射文件&#xff09; | Microsoft Learn 设置步骤 1. 右键项目属性, 连接器 -> 常规 -> 启用增量链接&#xff0c;设置为否。如下图&#xff1a; 2. 连接器 -> 调试 生成调试信息 设置为 生成调试信息 (/DEBUG) 生成程序数据库…...

A. Gift Carpet

time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Recently, Tema and Vika celebrated Family Day. Their friend Arina gave them a carpet, which can be represented as an n⋅m&#xfffd;⋅&…...

技术科普:汽车开放系统架构AUTOSAR

01.AUTOSAR简介 汽车是现代人类实现“千里江陵一日还”的交通工具&#xff0c;而计算机则是使人脱离繁杂重复脑力劳动的生产技术&#xff0c;两者的结合催生了汽车电子产业的蓬勃发展。 21世纪初&#xff0c;随着汽车电子应用需求的不断增多与硬件资源不断丰富&#xff0c;软…...

说说HTTP 和 HTTPS 有什么区别?

分析&回答 http协议 超文本传输协议&#xff0c;是互联网上应用最多的协议&#xff0c;基于TCP/IP通讯协议来传递信息&#xff0c;用于从WWW服务器传输超文本到本地浏览器的传输协议。 https协议 我们可以将其看作是以安全为目标的http协议。在http协议的基础上增加了S…...

Pygame中Trivia游戏解析6-5

3.4 next_question()函数 next_question()函数的作用是显示下一个题目。当用户按下“确认”按键后&#xff0c;将会显示下一个题目&#xff0c;代码如下所示。 if self.scored or self.failed:self.scored Falseself.failed Falseself.correct 0self.colors [white,white…...

Java8新特性2——方法引用

Java8新特性2——方法引用 注&#xff1a;以下内容基于Java 8&#xff0c;所有代码都已在Java 8环境下测试通过 目录&#xff1a; Java8新特性1——函数式接口&lambda表达式方法引用Stream 1. 方法引用 方法引用提供了一种替代 lambda 表达式的语法&#xff0c;允许以更…...

Mac“其他文件”存放着什么?“其他文件”的清理方法

很多Mac用户在清理磁盘空间时发现&#xff0c;内存占用比例比较大的除了有iCloud云盘、应用程序、影片、音频、照片等项目之外&#xff0c;还有一个“其他文件”的项目磁盘占用比也非常大&#xff0c;想要清理却无从下手。那么Mac“其他文件”里存放的是什么文件&#xff1f;我…...

46、TCP的“三次握手”

在上一节中&#xff0c;TCP首部常用的几个选项&#xff0c;有些选项的参数就是在通信双方在建立TCP连接的时候进行确定和协商的。所以在学习过TCP报文首部之后&#xff0c;下面我们开始学习TCP的连接建立。 TCP的一个特点是提供可靠的传输机制&#xff0c;还有一个特点就是TCP…...

libudev 和 libusb 常见API分析

libudev详解: libudev是Linux系统下的一个库&#xff0c;它提供针对内核提供的udev设备管理服务的函数库。udev是一种内核机制&#xff0c;用于在系统中传递解决方案的有关设备信息&#xff0c;以及在出现设备事件&#xff08;如删除、插入设备&#xff09;时触发相应的操作。 …...

[dasctf]misc04

与他不说一模一样吧也差不多 第三届红明谷杯CTF-【MISC】-阿尼亚_keepb1ue的博客-CSDN客flag.zip需要解压密码&#xff0c;在图片中发现一串密文。一串乱码&#xff0c;尝试进行字符编码爆破。获取到密码&#xff1a;简单的编码。https://blog.csdn.net/qq_36618918/article/d…...

Scala的函数式编程与高阶函数,匿名函数,偏函数,函数的闭包、柯里化,抽象控制,懒加载等

Scala的函数式编程 函数式编程 解决问题时&#xff0c;将问题分解成一个一个的步骤&#xff0c;将每个步骤进行封装&#xff08;函数&#xff09;&#xff0c;通过调用这些封装好的步骤&#xff0c;解决问题。 例如&#xff1a;请求->用户名、密码->连接 JDBC->读取…...

Axure RP 8.1.0.3400(原型设计工具)

Axure RP 8是一款原型设计工具&#xff0c;它提供了丰富的功能和工具&#xff0c;帮助用户创建高质量的网页、移动应用和桌面软件原型。以下是Axure RP 8的一些特色介绍&#xff1a; 强大的交互设计&#xff1a;Axure RP 8支持创建复杂的动画和过渡效果&#xff0c;让你的原型更…...

企业微信、飞书、钉钉机器人消息发送工具类

1、实例化WebClient对象 其实你也可以使用RestTemplate&#xff0c;我这里主要是用到了webflux框架&#xff0c;所以需要实例化客户端请求对象 Bean public WebClient webClient(){HttpClient httpClient getHttpClient();return WebClient.builder().clientConnector(new R…...

手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (1)

首先理清我们需要实现什么功能&#xff0c;怎么实现&#xff0c;提供一份整体逻辑&#xff1a;包括主函数和功能函数 主函数逻辑&#xff1a; 1. 读图,两张rgb&#xff08;cv::imread&#xff09; 2. 找到两张rgb图中的特征点匹配对 2.1定义所需要的参数&#xff1a;keypoints…...

Mac安装Dart时,Homebrew报错 Error: Failure while executing

前言&#xff1a; 最近准备开发Flutter项目时&#xff0c;在安装环境时&#xff0c;安装Homebew时遇到了以下报错信息&#xff0c;在这里分享一下。 报错信息&#xff1a; ~ % brew tap dart-lang/dart > Tapping dart-lang/dart Cloning into /opt/homebrew/Library/Tap…...

SSM整合~

构建并配置项目&#xff1a; 第一步&#xff1a;创建maven项目 第二步&#xff1a;配置pom.xml文件 设置打包方式&#xff1a; 为了方便部署&#xff0c;我们通常情况下&#xff0c;将项目打包为WAR&#xff0c;因为WAR文件是一种可执行的压缩文件&#xff0c;它可以将项目…...

Self-supervised 3D Human Pose Estimation from a Single Image

基于单幅图像的自监督三维人体姿态估计 主页&#xff1a; https://josesosajs.github.io/ imagepose/ 源码&#xff1a;未开源 摘要 我们提出了一种新的自我监督的方法预测三维人体姿势从一个单一的图像。预测网络是从描绘处于典型姿势的人的未标记图像的数据集和一组未配对…...

ubuntu下cups部分场景

第一章&#xff1a;部分操作指令 在计算机领域中&#xff0c;cups 是“通用UNIX打印系统”&#xff08;Common UNIX Printing System&#xff09;的缩写&#xff0c;它是一种用于在UNIX-like操作系统上管理打印任务的开源打印系统。cups 提供了一个框架&#xff0c;允许用户和…...

通过geoserver imageMosic发布多张tif数据

通过geoserver imageMosic发布多张tif数据 reference: https://zhuanlan.zhihu.com/p/132388558 https://zhuanlan.zhihu.com/p/103674876 https://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_timeseries.html 步骤 下载数据 http…...

输出图元(四)8-2 OpenGL画点函数、OpenGL画线函数

4.3 OpenGL画点函数 要描述一个点的几何要素&#xff0c;我们只需在世界坐标系中指定一个位置。然后该坐标位置和场景中已有的其他几何描述一起被传递给观察子程序。除非指定其他属性值&#xff0c;OpenGL 图元按默认的大小和颜色来显示。默认的图元颜色是白色&#x…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...