我正在创建一个调试器工具。我需要GCC编译器的映射文件结构规范。为了找出如何为不同数据类型的不同变量映射内存(映射文件中的类、内部类、静态、静态常量、外部、模板、类型定义变量规范)。我还想知道如何将符号添加到不同的变量中,以便在映射文件中进行区分。告诉我下一步的方法。
发布于 2011-03-11 06:27:19
不要认为您需要了解详细的映射文件格式,-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参数获得地址
希望这能有所帮助。
https://stackoverflow.com/questions/3013178
复制相似问题