直接定义一个变量,类似extern int * const BSS_START_A_O;
然后linking时让linker创建这个变量并赋值成A.o BSS起始地址。
【 在 feiy 的大作中提到: 】
: 对工程完成编译链接后,在map文件可以查看到,每个obj(模块)内部所被分配的bss rodata等等的起始地址就都确定了,而且通过指针可以正常访问这些地址内存的内容。
: 那么请教,在C代码里,如何来获取这些具体到某个obj的某个段的起始地址? 比如,我想获取 a.o这个模块(来自工程的a.c)中bss被分配的起始地址,改如何写C代码?
: (注:不是问获取整个工程的总段的起始地址,而是请教,如何在C代码里获取某个obj里的某个段所被分配的起始地址,在map文件里可以看到的那个地址)
: ...................
--
FROM 213.95.148.*