n 調(diào)試器和被調(diào)試進(jìn)程運(yùn)行在不同的機(jī)器上,調(diào)試器運(yùn)行在PC機(jī)(宿主機(jī)),而被調(diào)試的進(jìn)程則運(yùn)行在各種專業(yè)調(diào)試板上(目標(biāo)板)。
n 調(diào)試器通過某種通信方式(串口、并口、網(wǎng)絡(luò)、JTAG等)控制被調(diào)試進(jìn)程。
n 在目標(biāo)機(jī)上一般會具備某種形式的調(diào)試代理,它負(fù)責(zé)與調(diào)試器共同配合完成對目標(biāo)機(jī)上運(yùn)行著的進(jìn)程的調(diào)試。這種調(diào)試代理可能是某些支持調(diào)試功能的硬件設(shè)備,也可能是某些專門的調(diào)試軟件(如gdbserver)。
n 目標(biāo)機(jī)可能是某種形式的系統(tǒng)仿真器,通過在宿主機(jī)上運(yùn)行目標(biāo)機(jī)的仿真軟件,整個調(diào)試過程可以在一臺計算機(jī)上運(yùn)行。此時物理上雖然只有一臺計算機(jī),但邏輯上仍然存在著宿主機(jī)和目標(biāo)機(jī)的區(qū)別。
n 采用ROMMonitor方式進(jìn)行交叉調(diào)試需要在宿主機(jī)上運(yùn)行調(diào)試器,在宿主機(jī)上運(yùn)行ROM監(jiān)視器(ROMMonitor)和被調(diào)試程序,宿主機(jī)通過調(diào)試器與目標(biāo)機(jī)上的ROM監(jiān)視器遵循遠(yuǎn)程調(diào)試協(xié)議建立通信連接。ROM監(jiān)視器可以是一段運(yùn)行在目標(biāo)機(jī)ROM上的可執(zhí)行程序,也可以是一個專門的硬件調(diào)試設(shè)備,它負(fù)責(zé)監(jiān)控目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行情況,能夠與宿主機(jī)端的調(diào)試器一同完成對應(yīng)用程序的調(diào)試。
n 采用In-CircuitEmulator(ICE)方式進(jìn)行交叉調(diào)試時需要使用在線仿真器,它是目前最為有效的嵌入式系統(tǒng)的調(diào)試手段。它是仿照目標(biāo)機(jī)上的CPU而專門設(shè)計的硬件,可以完全仿真處理器芯片的行為。仿真器與目標(biāo)板可以通過仿真頭連接,與宿主機(jī)可以通過串口、并口、網(wǎng)線或USB口等連接方式。由于仿真器自成體系,所以調(diào)試時既可以連接目標(biāo)板,也可以不連接目標(biāo)板。