GCC处理常量字符串的方式是什么?

时间:2019-06-06 06:08:59

标签: gcc compiler-construction elf

在GCC中用于将字符串数组构建为.rodata节的传递名称是什么?我想写一个插件来拦截源代码中的字符串,我知道binutils中有很多工具可以实现相同的目标,但是如果我们要进行一些后处理,例如验证单词,该怎么办?

1 个答案:

答案 0 :(得分:0)

只读数据部分,也称为.rodata,在所有rtl通过的最后一步之后生成。您可以在/gcc文件夹中的文件varasm.c中查看其工作方式。查看部分

section *
default_function_rodata_section (tree decl) 

及以下。 您还可以在此处轻松添加一些函数来拦截数据到asm文件或其他输出文件中,或者编写外部函数。

varasm.c文件处理所有汇编代码的生成    除了功能说明。    这包括变量的声明及其初始值。