1
在我的项目,我定义:(这不是真正的代码 - 抽象目的)查找地址
typedef struct {
...
} my_struct;
在我宣布一些C文件:
my_struct my_struct_inst;
而在其他2个C文件,我使用的结构通过声明:
extern my_struct my_struct_inst;
和使用它的内容。
我编译的代码RVCT2.2到ARM,并试图找到该结构的地址:
1)什么时候内存分配给my_struct_inst?在编译时间?在运行时间?
2)在拆卸我可以看到,在.FLASH_RAM
部分(大概在那里这类数据属于)有像一些参考: my_struct_inst%量0x190 我IDA得到了它。这是什么意思? (这是结构实例将开始偏移量0x190从.FLASH_RAM
节的开始?)
3)究竟是如何实际地址(这里居然坐在内存中的结构)被当我写my_struct_inst.some_member
(我应该读一些访问ABI文档?)
写一些C表示“&my_struct_inst”,将其编译为程序集并查看代码。 –
你的意思是在运行时打印实例的地址吗? – Bush
这就是我的意思。我认为答案3),但也许我误解了你的问题。 –