【0. MSDN中关于参数的说明】
/MAP (生成 Map文件)
这个选项告诉连接器要生成一个map文件。
命令行 | 干吗的 | 备注 |
/MAP | 生成MAP文件 | 默认生生成的map文件是程序名+.map |
/MAP:filename | 指定Map文件名 | 不用默认文件名,用你指定的文件名 |
map文件包含了要连接的程序的一下信息:
- 模块名
- 程序代码中的各个代码group的名, 包括这些group的 start address (as section:offset), length, group name, and class
- public symbols, 包括 address (as section:offset), symbol name, flat address, and .OBJ file where the symbol is defined
- entry point (as section:offset)
/MAPINFO (指定map文件中要包含的信息)
【语法】
/MAPINFO:{EXPORTS|FIXUPS|LINES}
指定了/MAP选项之后才能用这个。这个是告诉连接器把什么信息包含到map文件中。
- EXPORTS 包含输出函数,如果是dll的话用得上
- FIXUPS 基址重定位信息
- LINES 代码的行信息
-----------------------------------------总结&应用-------------------------------------------------
【1. MAP文件生成过程】
例如,代码是test.c。对于VC 6.0的编译器来说,命令行编译过程如下(不用IDE):
1.cl /c /Zd test.c
2.link /map /mapinfo:lines test.obj
3.最后就会生成:test.exe和test.map
【2. 使用MAP文件调试的例子在这里】
http://www.cnblogs.com/gaotaozhaolei/archive/2008/02/02/1062155.html
原文链接:http://ihacku.blog.163.com/blog/static/163025145201032694723537/
MSDN资源:http://msdn.microsoft.com/zh-cn/library/k7xkk3e2(v=vs.80).aspx