map文件
图像数据调用文件
map文件是指游戏中往往把一些游戏地图保存为扩展名文件。map是一种图像数据调用文件,可以模拟场景。
编程映射
MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文件。
生成方法
MAP文件主要有两种生成方法,一种是由系统自动生成,默认文件名为所建立的项目名(如XXX为项目名)加上.map后缀xxx.map,另一种在CMD文件中指定生成MAP文件,操作方法为在MEMORY指令前面加上“-m abc.map”,文件名可以任意。
文件格式
MAP文件大概分为文件头、内存配置、段映射、全局符号四部分。内存配置与CMD文件中的MEMORY指令关联,在CMD文件中定义的程序与数据区间定 义,在该部分均可以找到对应,与CMD文件不同的时,在MAP文件中加入了一个实际使用的区间,即在程序中实际用到的空间长度。段映射部分与CMD文件中 的SECTION指令关联,在该部分程序中所有的段实际映射的起始地址与实际长度均有详细说明。可以具体到程序中PROGMA指定的段和各个单独文件产生 的OBJ文件。全局符号可以是程序使用的每一个函数、程序中定义的全局变量均可以在此找到对应的起始地址。MAP文件中采用两种方式列举,一种为按相应地 址排列,另一种按全局符号字母排列。
存储地址
MAP文件默认保存在所在项目下面,由CMD文件产生的MAP文件保存在该项目的DEBUG目录下面。
当然以上解释只是在CCS编译器中的一种情况,在VC还有其他编译环境中都会有MAP文件,主要的功能就是标志程序,数据,IO在编译时和空间地址之间的映射关系。
调试应用
作用
毕竟有些时候IDE提示的信息不够明白,使用MAP文件是一个调试的好帮手。通过map文件可以查找崩溃地址,然后就可以精确地定位到源代码中出错的代码行
什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号、源文件和代码行号信息的的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。
生成
在 VC 中,我们可以按下 Alt+F7 ,打开“Project Settings”选项页,选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然后要选择 Link 选项卡,在最下面的 Project Options 里面输入: /mapinfo:lines 和 /map:PROJECT_NAME.map 。最后按下 F7 来编译生成 EXE 可执行文件和 MAP 文件。
加入的参数的含义:
/Zd 表示在编译的时候生成行信息
/map[:filename] 表示生成 MAP 文件的路径和文件名
/mapinfo:lines 表示生成 MAP 文件时,加入行信息
/mapinfo:exports 表示生成 MAP 文件时,加入 exported functions (如果生成的是 DLL 文件,这个选项就要加上)
参考资料
最新修订时间:2023-12-25 10:08
目录
概述
编程映射
参考资料