创建调试工具。 我需要GCC编译器的MAP文件结构规范。 为了找到内存如何映射不同数据类型的不同变量(类,内部类,静态,静态const,extern,模板,MAP文件中的typedef变量规范)。 而且我想知道如何将符号添加到不同的变量以区分MAP文件的方式。 告诉我继续前进的方法。
答案 0 :(得分:0)
不要认为您需要了解详细的MAP文件格式,-Wl和--print-map应该足以从编译器获取可读的文本地图数据。
$ cat x.c | grep alpha
int alpha = one;
int c = do_operation(alpha, b);
printf( "%d op %d = %d\n", alpha, b, c);
$ g++ -Wl,--print-map ./x.c | grep -P "(alpha|printf)"
0x00000000080483f0 printf@@GLIBC_2.0
0x000000000804a018 alpha
上面你可以看到x.c包含变量“alpha”的声明,也使用“printf”。正如您所见,地址可通过--print-map paramater
获得希望这有帮助。