Mapgis打开。
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文件中采用两种方式列举,一种为按相应地址排列,另一种按全局符号字母排列。
示例代码:#include <iostream>
using namespace std
void crash()
{
__asm
{
int 3//到这里就中断(模拟程序崩溃)
}
}
int main()
{
cout<<"hello"<<"\n"
crash()
return 0
}
在vc6.0里敲入缺扮做上面代码,project->settings->c/c++ 在project options里加上/Zd表示编译的时候生成行信息,然后在link选项卡里勾选Generate mapfile,在project options加上/mapinfo:lines。好缺明了,rebuild all就可以在debug目录下生成一个后缀名为.map的文伏衡件,可以用记事本打开它。
运行程序,d出有“调试 发送错误报告 不发送”三个按钮的对话框,查看错误报告技术信息,在开始的几行里有“code flags record address“记住address后的地址,我的是0x00401156。根据它就能找出崩溃时的函数地址。可以查看map文件的 “Rva+Base”(偏移+基地址)列,其中第一个大于address的前一个call对应函数就是崩溃的函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)