1 .rodata段存放的内容
.rodata段存放的是常量。用C代码写一段程序,其中有些东西是被编译器放到.rodata段的。
例如:
char* fmt = "12345678";
int main()
{
uart_send_string(fmt);
}
则字符串常量"12345678"是放在.rodata段的。
2 Object文件中.rodata段的分析
通过objdump可以查看object或elf文件的段的分布
$ arm-linux-objdump -h main.o
obj/main.o:
file format elf32-littlearm
Sections:
Idx
Name
Size
VMA
LMA
File off
Algn
0
.text
000000a8
00000000
00000000
00000034
2**2
CONTENTS, ALLOC, LOAD, RELOC,
READONLY, CODE
1
.data
00000004
00000000
00000000
000000dc
2**2
CONTENTS, ALLOC, LOAD, RELOC,
DATA
2
.bss
00000000
00000000
00000000
000000e0
2**0
ALLOC
3 .debug_abbrev
0000009e
00000000
00000000
000000e0
2**0
CONTENTS, READONLY,
DEBUGGING
4
.debug_info
0000013d
00000000
00000000
0000017e
2**0
CONTENTS, RELOC, READONLY,
DEBUGGING
5
.debug_line
00000041
00000000
00000000
000002bb
2**0
CONTENTS, RELOC, READONLY,
DEBUGGING
6
.rodata