基于Eclipse的開發(fā)環(huán)境中調(diào)試器設(shè)計(jì)與實(shí)現(xiàn)
元編輯器允許用戶在線編輯。為每一個(gè)元素和列提供元編輯器,應(yīng)用JFace的CellEditor進(jìn)行編輯,提供了對(duì)文本選擇框、組合框的標(biāo)準(zhǔn)編輯。為每一個(gè)元素提供元修改器,決定哪一個(gè)列可以被修改,在修改之后更新相應(yīng)的值,可以用實(shí)現(xiàn)接口IcellModifier來達(dá)到目標(biāo)。
2.4 內(nèi)存視圖
內(nèi)存視圖顯示一段內(nèi)存中的內(nèi)容。內(nèi)存顯示由內(nèi)存塊、內(nèi)存塊內(nèi)容重新獲取、內(nèi)存塊管理器、內(nèi)存塊描述類型、內(nèi)存塊描述、內(nèi)存塊描述綁定、內(nèi)存塊描述管理器等幾部分組成。
讀取并顯示內(nèi)存塊的過程如下:用戶啟動(dòng)內(nèi)存查看命令,從當(dāng)前調(diào)試上下文中,平臺(tái)獲取適配器IMetm-ryBlockRetrieval,平臺(tái)為內(nèi)存塊請(qǐng)求內(nèi)存塊描述適配器,內(nèi)存塊添加到內(nèi)存塊管理器中,平臺(tái)查找內(nèi)存描述類型列表,找到和內(nèi)存塊符合的內(nèi)存描述,然后創(chuàng)建它,將內(nèi)存描述添加到內(nèi)存視圖中。
用擴(kuò)展點(diǎn)memoryRenderings>來擴(kuò)展內(nèi)存描述類型。描述類型包含描述名字,描述惟一的標(biāo)識(shí)符這兩個(gè)信息。實(shí)現(xiàn)接口IMemoryRenderingTypeDelegate中的函數(shù)為:
需要在描述之間提供同步機(jī)制來使得用戶不用手工進(jìn)行同步。在此提供同步服務(wù)器,以解決當(dāng)前顯示描述之間的同步問題。當(dāng)某一個(gè)描述內(nèi)容改變后,會(huì)發(fā)送一個(gè)描述改變的事件,同步服務(wù)器接收到這個(gè)事件,同步服務(wù)器通知對(duì)這個(gè)事件感興趣的描述,然后其他描述接收這個(gè)事件并進(jìn)行響應(yīng),其過程如圖6所示。
內(nèi)存描述綁定定義可以應(yīng)用于某種類型中內(nèi)存塊的內(nèi)存描述。可以用擴(kuò)展點(diǎn)memoryRenderings進(jìn)行創(chuàng)建。其內(nèi)容如下:
最終的內(nèi)存視圖如圖7所示。
3 結(jié) 語
作為大型項(xiàng)目的一個(gè)部分,在分析CDT調(diào)試機(jī)制的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)適用于嵌入式軟件集成開發(fā)環(huán)境的調(diào)試器,具備斷點(diǎn)設(shè)置、單步執(zhí)行、源代碼搜索以及變量、內(nèi)存和寄存器查看等常用調(diào)試功能。
評(píng)論