map文件里都有啊, 那几个符号, sbss, ebss, sdata, edata什么的
在程序里extern int _sbss;
然后&_sbss就是你要的地址
【 在 feiy (null) 的大作中提到: 】
对工程完成编译链接后,在map文件可以查看到,每个obj(模块)内部所被分配的bss rodata等等的起始地址就都确定了,而且通过指针可以正常访问这些地址内存的内容。
那么请教,在C代码里,如何来获取这些具体到某个obj的某个段的起始地址? 比如,我想获取 a.o这个模块(来自工程的a.c)中bss被分配的起始地址,改如何写C代码?
(注:不是问获取整个工程的总段的起始地址,而是请教,如何在C代码里获取某个obj里的某个段所被分配的起始地址,在map文件里可以看到的那个地址)
谢谢!
--
FROM 45.66.157.*