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),但也許我誤解了你的問題。 –