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