2012-01-06 66 views
1

所以我在ARM系統(一個iPod touch,具體),我想了解一些關於我的程序如何實際組裝。我已經想出瞭如何使用gdb來打印和執行彙編程序指令,但是我讀過ARM支持大型程序的覆蓋。有沒有辦法以某種方式列出這些覆蓋圖所在的可執行文件本身的位置,如果它們存在?我需要一個特殊的gcc標誌來包含疊加層,還是有辦法將它們禁用以便於調試?覆蓋在ARM

感謝您的幫助。

回答

4

我們在這裏有一個經典的例子XY problem,但我會盡力回答它。

覆蓋並不是ARM固有的,它是運行大於可用內存(或減少內存使用)的程序的通用技術。它可以在ARM,x86或幾乎任何其他平臺上實現。

但是,你不應該擔心它。 iOS和Linux不使用覆蓋,他們使用MMU和虛擬內存來管理正在運行的程序。對於程序員來說,它是透明的,操作系統根據需要負責映射和取消映射代碼或數據頁面。

如果您在調試時遇到特定問題,您應該提及它們;問關於你的認爲是什麼原因的假設性問題通常不是很有成效。

+0

調試時很有效率,也許不是。有意義的只是好奇心,是的。 – 2012-01-06 19:37:55