2011-04-26 95 views
1

我目前正在使用一些μC系統,我想深入瞭解詳細信息以瞭解下面會發生什麼。 我目前正在使用Motorola Coldfire和ARM 9.對於兩者,我都使用GCC toolchain作爲交叉編譯器!調試文件格式混淆:ELF/BIN

ELF文件包含比獲取應用程序運行所需更多的信息!一個BIN文件就夠了!我知道ELF格式保留了一些額外的信息。它將符號及其地址連接在內存中,對嗎?是軟件調試器(例如GDB)的額外信息,還是其中一些信息傳輸到目標設備?所以如果有斷點擊,片上調試器告訴主機有關地址,軟件調試器只能顯示相關的代碼段而不是無聊的內存地址? 我可以使用BIN文件進行調試嗎(好吧,這將是愚蠢的,但基本上?)?

有關此主題的一些啓示感謝!

thynk你

回答

1

你是正確的,ELF文件包含額外的信息,如用於調試符號。通常在μC環境中,您將使用BIN文件在處理器上執行(通常加載到閃存中),然後您將ELF文件傳遞給GDB進行調試。在開發PC上運行交叉編譯的GDB時,它將使用ELF文件作爲參考(因此它知道代碼行號,變量名等),但它將與片上調試器通信以讀取存儲器位置,設置斷點等。爲了讓GDB與片上調試器通信,可以在GDB中使用target remote命令,通過它傳遞任何必要的參數(通常是網絡地址爲&端口的串行端口)。