遠(yuǎn)程調(diào)試的設(shè)計(jì)與實(shí)現(xiàn)
- 期刊名字:計(jì)算機(jī)工程與應(yīng)用
- 文件大?。?31kb
- 論文作者:黃瑞芳,朱敏,張衛(wèi)民
- 作者單位:國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院
- 更新時(shí)間:2020-11-03
- 下載次數(shù):次
遠(yuǎn)程調(diào)試的設(shè)計(jì)與實(shí)現(xiàn)*黃瑞芳朱敏張衛(wèi)民國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院( 長(zhǎng)沙410073 )E-mail rfhuang@nudt.edu.cn摘要一般情況下調(diào)試器與被調(diào)試程序(目標(biāo)程序運(yùn)行在同一個(gè)計(jì)算機(jī)系統(tǒng)環(huán)境中但是在實(shí)時(shí)系統(tǒng)、內(nèi)核調(diào)試及一些Client/Server系統(tǒng)等情況下調(diào)試器不能運(yùn)行在目標(biāo)程序運(yùn)行的環(huán)境中此時(shí)有效的解決方法就是實(shí)施遠(yuǎn)程調(diào)試( Remote debugging 》遠(yuǎn)程調(diào)試系統(tǒng)由本地調(diào)試器、遠(yuǎn)程調(diào)試服務(wù)器以及遠(yuǎn)程調(diào)試通訊協(xié)議組成。該文詳細(xì)討論這三部分的設(shè)計(jì)與實(shí)現(xiàn)并介紹一- 個(gè)自行設(shè)計(jì)的基于遠(yuǎn)程調(diào)試的并行調(diào)試器。關(guān)鍵詞遠(yuǎn)程調(diào)試調(diào)試服務(wù)器并行調(diào)試Design and Realization of Remote DebuggingHuang Ruifang Zhu Min Zhang Weimin( National University of Defense Technology ,Changsha 410073 )Abstract : Remote debugging system ,which consists of native debugger remote debugging server and the communicationprotocol is a good solution to the problem that debugger can not run on the environment such as kermel debugging re-altime system and some client/server system on which debuggee ( target program )loes. This paper focuses on the designand realization of the remote debuging system and introduces a remote -debugging -based parallel debugger developedby us.Keywords : Remote debugging ,Debug server Parallel debugging.引言節(jié)介紹遠(yuǎn)程調(diào)試的實(shí)現(xiàn)方法第四節(jié)討論遠(yuǎn)程調(diào)試協(xié)議;最后調(diào)試器是軟件開(kāi)發(fā)必不可少的工具。通用計(jì)算機(jī)無(wú)論是描述自行設(shè)計(jì)的一個(gè)基于遠(yuǎn)程調(diào)試的大規(guī)模并行調(diào)試工具。巨型機(jī)、大型機(jī)、工作站、還是PC機(jī)都配置有適合系統(tǒng)特點(diǎn)的調(diào)試工具。如CRAY巨型機(jī)的Totalview. SGI工作站.上的2遠(yuǎn)程調(diào)試的Client/Server概念workshop debugger、 IBM SPI 上的xpdbx. PC機(jī)Windows上的源級(jí)調(diào)試器典型的內(nèi)部功能包括用戶界面、符號(hào)表處理、codeview等。然而在一些特殊環(huán)境下 系統(tǒng)可能不具備支持本目標(biāo)程序控制。其中用戶界面部分處理調(diào)試器與目標(biāo)程序的地調(diào)試器運(yùn)行的能力如:輸入/輸出以及調(diào)試命令語(yǔ)法分析;符號(hào)表處理主要進(jìn)行源級(jí)系統(tǒng)不能運(yùn)行一個(gè)本地調(diào)試器。如嵌入式系統(tǒng)、實(shí)時(shí)系和機(jī)器級(jí)調(diào)試功能及數(shù)據(jù)間的轉(zhuǎn)換,它包括表達(dá)式分析、地址統(tǒng);映射、命令轉(zhuǎn)換等;目標(biāo)程序控制是在操作系統(tǒng)支持下實(shí)施對(duì)系統(tǒng)沒(méi)有運(yùn)行本地調(diào)試器的資源。如缺乏調(diào)試需要的內(nèi).目標(biāo)程序的執(zhí)行控制、地址空間訪問(wèn)、狀態(tài)監(jiān)控。需要實(shí)施遠(yuǎn)程存、或不支持多進(jìn)程使得系統(tǒng)不能在運(yùn)行- -個(gè)本地調(diào)試器的同調(diào)試的主要原因是目標(biāo)系統(tǒng)不能完全支持這些功能必須有另時(shí)又運(yùn)行一個(gè)目標(biāo)程序;一個(gè)系統(tǒng)即主機(jī)系統(tǒng)分擔(dān)其中-部分功能。因而設(shè)計(jì)遠(yuǎn)程調(diào)系統(tǒng)不能訪問(wèn)目標(biāo)程序源文件。如缺乏文件系統(tǒng);試系統(tǒng)的首要問(wèn)題是如何在主機(jī)與目標(biāo)機(jī)之間分布這些調(diào)試系統(tǒng)的屏幕或鍵盤(pán)不能用于調(diào)試。如目標(biāo)程序占用了屏幕和鍵盤(pán)。Client/Server 結(jié)構(gòu)是-般遠(yuǎn)程調(diào)試系統(tǒng)采用的模型CNU另- -方面從計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的發(fā)展現(xiàn)狀看,Client/Server的GDB、CRAY的Totalview以及DEC的Ladebug的遠(yuǎn)程調(diào)試結(jié)構(gòu)已越來(lái)越普遍,- 個(gè)應(yīng)用軟件通常分布在多個(gè)不同的機(jī)器系統(tǒng)都是這種模型。上運(yùn)行,與這種應(yīng)用相對(duì)應(yīng)的調(diào)試也必須向分布式結(jié)構(gòu)發(fā)展。2.1遠(yuǎn)程 調(diào)試Client/Server模型要解決調(diào)試領(lǐng)域中這種特殊且日趨普遍的情況最有效的解決在Client/Server模型中Client調(diào)試器即為本地調(diào)試器運(yùn)方法就是該文討論的遠(yuǎn)程調(diào)試。行在主機(jī)環(huán)境下Server 調(diào)試器即為調(diào)試服務(wù)器,與目標(biāo)程序通常調(diào)試器運(yùn)行的環(huán)境’主機(jī)"與目標(biāo)程序運(yùn)行的環(huán)境一起運(yùn)行在目標(biāo)環(huán)境下。 圖1給出了三種典型的Client/Server(目標(biāo)機(jī)" )相同遠(yuǎn)程調(diào)試是指主機(jī)和目 標(biāo)機(jī)為物理上分離的模型。中國(guó)煤化工系統(tǒng)兩個(gè)系統(tǒng)之間用網(wǎng)絡(luò)或-般線性端口連接。遠(yuǎn)程調(diào)試系在配置HCNMH G與同一文件系統(tǒng)連接統(tǒng)由三部分組成主機(jī)上的本地調(diào)試器,目標(biāo)機(jī).上的調(diào)試服務(wù)的同一機(jī)器L必疋件仞任1舊過(guò)區(qū)租上分離的遠(yuǎn)程調(diào)試特器遠(yuǎn)程調(diào)試協(xié)議。該文第二節(jié)介紹遠(yuǎn)程調(diào)試的一般概念第三例在配置B中主機(jī)系統(tǒng)Client軟件通過(guò)TCP/IP連接遠(yuǎn)程調(diào)"該文的研究工作受?chē)?guó)際科大校預(yù)研金支持。作者簡(jiǎn)介黃瑞芳副研究員。朱敏碩士,講師。二位均從事計(jì)算機(jī)可視化和并行調(diào)試環(huán)境的研究與設(shè)計(jì)。計(jì)算機(jī)工程與應(yīng)用2001.1 125試服務(wù)器主機(jī)和目標(biāo)系統(tǒng)共享同一文件系統(tǒng)。配置C是最靈試必須實(shí)現(xiàn)以下內(nèi)容:活的結(jié)構(gòu)主機(jī)Client與目標(biāo)Server的連接采用分離的文件系( 1遠(yuǎn)程調(diào)試設(shè)置統(tǒng)甚至目標(biāo)機(jī)可以沒(méi)有文件系統(tǒng)。有兩種方式將本地調(diào)試器設(shè)置成遠(yuǎn)程調(diào)試模式- -種是本地調(diào)試器本身提供了自動(dòng)配置(Configure)機(jī)制并為可支持的.Chient.遠(yuǎn)程目標(biāo)提供調(diào)試服務(wù)器及通訊連接實(shí)現(xiàn),如GDB支持i960Server( Nindy ) EB29K、Vx Works 等遠(yuǎn)程環(huán)境;另一種是手工方式設(shè)置此時(shí)實(shí)現(xiàn)者必須實(shí)現(xiàn)一整套基于 本地調(diào)試器的遠(yuǎn)程調(diào)試配置、基于遠(yuǎn)程操作系統(tǒng)的遠(yuǎn)程調(diào)試服務(wù)器、基于連接環(huán)境的通訊協(xié)議其中遠(yuǎn)程調(diào)試設(shè)置的主要內(nèi)容就是在本地調(diào)試器軟件A核心模塊和底層模塊之間插入轉(zhuǎn)換機(jī)制用遠(yuǎn)程通訊模塊置換主機(jī)系統(tǒng)目標(biāo)系統(tǒng)本地底層模塊遠(yuǎn)程通訊模塊主要有二部分打包遠(yuǎn)程命令和Client1 TCP聯(lián)接 Server解包遠(yuǎn)程回答。(目標(biāo)器序)(2 )打包遠(yuǎn)程命令( putpackage )-個(gè)遠(yuǎn)程調(diào)試命令可能需分解為- -個(gè)或多個(gè)請(qǐng)求包,請(qǐng)求文件彩統(tǒng)文件系統(tǒng)包的個(gè)數(shù)取決于命令類(lèi)型以及通訊緩沖區(qū)的容量大小同一命令的請(qǐng)求包必須連續(xù)發(fā)往遠(yuǎn)程目標(biāo)發(fā)送函數(shù)實(shí)現(xiàn)依賴與主機(jī)主機(jī)系航與目標(biāo)機(jī)的鏈接機(jī)制。Clent| TCPP聯(lián)越(3解包遠(yuǎn)程回答( gtpackage)接收遠(yuǎn)程目標(biāo)的回答包。對(duì)應(yīng)于每--個(gè)發(fā)往目標(biāo)的遠(yuǎn)程調(diào)試命令- -定有對(duì)應(yīng)的回答回答包可以不止一個(gè)第-個(gè)回答B(yǎng)包包含有后續(xù)包個(gè)數(shù)的信息同一命令的多個(gè)回答包必須連續(xù)送回。若回答包顯示的回答表示為約定的錯(cuò)誤getpackage 直圖1遠(yuǎn)程調(diào)試的 Client/Server模型接報(bào)告用戶。在Client/Server模型下用戶程序駐留在目標(biāo)系統(tǒng),由主3.2調(diào)試服務(wù) 器機(jī)系統(tǒng)Client啟動(dòng)與目標(biāo)硬件、服務(wù)器軟件的連接。運(yùn)行在目標(biāo)機(jī)上的調(diào)試服務(wù)器實(shí)現(xiàn)對(duì)用戶目標(biāo)程序的低2.2 Client/Server 模型的調(diào)試功能分布層監(jiān)控。需要實(shí)施遠(yuǎn)程調(diào)試的目標(biāo)環(huán)境通常只具有很少的支持Client軟件分擔(dān)用戶界面和符號(hào)處理、Server軟件承擔(dān)目調(diào)試的低級(jí)功能調(diào)試服務(wù)器的目的就是如何利用這些極少的標(biāo)監(jiān)控是最常見(jiàn)的功能分布方式表1規(guī)劃了Client/Server模支持取得常規(guī)的調(diào)試要求。遠(yuǎn)程調(diào)試系統(tǒng)的調(diào)試能力取決于目型的一般調(diào)試功能分布情況。標(biāo)環(huán)境對(duì)調(diào)試的支持度。專1 Client/Server模型的調(diào)試功能分布調(diào)試服務(wù)器對(duì)運(yùn)行環(huán)境操作系統(tǒng)的基本要求是:能夠建立調(diào)試服務(wù)器與目標(biāo)程序的關(guān)系。本地調(diào)試器調(diào)試服務(wù)器提供檢測(cè)程序產(chǎn)生異常的手段。運(yùn)行在主機(jī)系統(tǒng)運(yùn)行在目標(biāo)系統(tǒng)能夠訪問(wèn)目標(biāo)任務(wù)的內(nèi)存映象。對(duì)源文件和符號(hào)表的訪問(wèn)及處理監(jiān)控 目標(biāo)程序能夠訪問(wèn)目標(biāo)任務(wù)的狀態(tài)及其寄存器。形成發(fā)給調(diào)試服務(wù)器的請(qǐng)求形成發(fā)給主機(jī)調(diào)試器的回答在必要的目標(biāo)系統(tǒng)支持下根據(jù)協(xié)議調(diào)試服務(wù)器實(shí)現(xiàn)以利用調(diào)試協(xié)議發(fā)送調(diào)試命令給利用調(diào)試協(xié)議 接收協(xié)議命令并下內(nèi)容:回送響應(yīng)建立與主機(jī)調(diào)試器的連接;掌握目標(biāo)程序進(jìn)程信息掌握目標(biāo)進(jìn)程的環(huán)境信息解包主機(jī)請(qǐng)求包;打包回答包;3遠(yuǎn)程 調(diào)試實(shí)現(xiàn)實(shí)施目標(biāo)程序監(jiān)控包括:中斷處理、步進(jìn)實(shí)現(xiàn)、目標(biāo)任務(wù).遠(yuǎn)程調(diào)試系統(tǒng)對(duì)用戶發(fā)布的調(diào)試請(qǐng)求的處理過(guò)程是主機(jī)虛存空間訪問(wèn)、寄存器和任務(wù)棧的訪問(wèn)。本地調(diào)試器通過(guò)其界面獲取用戶請(qǐng)求并對(duì)其進(jìn)行語(yǔ)法分析及中斷處理是斷點(diǎn)、步進(jìn)實(shí)現(xiàn)的基礎(chǔ)。為了檢測(cè)另-個(gè)程序符號(hào)處理將用戶請(qǐng)求轉(zhuǎn)換為機(jī)器級(jí)調(diào)試命令如果實(shí)施的是是否出現(xiàn)中斷,調(diào)試服務(wù)器利用目標(biāo)操作系統(tǒng)提供的異常檢測(cè)本地調(diào)試,這種機(jī)器級(jí)調(diào)試命令將采用本地操作系統(tǒng)支持實(shí)機(jī)制使自己成為目標(biāo)程序的中斷處理器。當(dāng)目標(biāo)程序產(chǎn)生異現(xiàn)對(duì)遠(yuǎn)程調(diào)試來(lái)說(shuō)這種命令必須符合遠(yuǎn)程調(diào)試協(xié)議的規(guī)定,常時(shí) 調(diào)試服務(wù)器能夠捕獲中斷消息并判斷目標(biāo)程序發(fā)生了什形成調(diào)試請(qǐng)求包請(qǐng)求包通過(guò)通訊線路按協(xié)議的規(guī)定送往目標(biāo)么中斷進(jìn)行相應(yīng)處理。調(diào)試服務(wù)器處理目標(biāo)任務(wù)正常結(jié)束中機(jī)。遠(yuǎn)程目標(biāo)上的調(diào)試服務(wù)器接收請(qǐng)求包根據(jù)請(qǐng)求類(lèi)型在目斷以及目標(biāo)中國(guó)煤化工系統(tǒng)原始處理。標(biāo)操作系統(tǒng)的支持下實(shí)施對(duì)目標(biāo)進(jìn)程的執(zhí)行控制或數(shù)據(jù)訪問(wèn),fY HC NMHG處理結(jié)果以回答包的形式發(fā)往主機(jī)。主機(jī)接收回答包并解包將回答信息分析處理為源級(jí)格式通過(guò)調(diào)試器界面顯示給用戶。遠(yuǎn)程調(diào)試協(xié)議定義主機(jī)調(diào)試器與目標(biāo)調(diào)試服務(wù)器之間如3.1 本地調(diào)試器何協(xié)同工作。其主要內(nèi)容是規(guī)定主機(jī)與目標(biāo)之間為實(shí)現(xiàn)遠(yuǎn)程調(diào)本地調(diào)試器除完成源級(jí)調(diào)試的核心操作外,針對(duì)遠(yuǎn)程調(diào)試進(jìn)行通訊的條件、通訊的內(nèi)容及通訊方式。在協(xié)議的規(guī)定下126 2001.1 計(jì)算機(jī)工程與應(yīng)用主機(jī)調(diào)試器和調(diào)試服務(wù)器可以用各種形式實(shí)現(xiàn)。停止?fàn)顟B(tài)描述主機(jī)與目標(biāo)機(jī)建立遠(yuǎn)程調(diào)試通訊的前提條件是:S目標(biāo)任務(wù)因斷點(diǎn)中斷停止主機(jī)方面理解約定的協(xié)議;-切就緒后,有啟動(dòng)主機(jī)與W目標(biāo)任務(wù)正常退出目標(biāo)機(jī)連接的手段調(diào)試完畢后,有切斷主機(jī)與目標(biāo)機(jī)連接、恢目標(biāo)任務(wù)因其他異常中止執(zhí)行復(fù)程序運(yùn)行的手段。目標(biāo)機(jī):能夠建立調(diào)試服務(wù)器與目標(biāo)程序之間的監(jiān)控關(guān)5基于遠(yuǎn)程調(diào)試的并行調(diào)試器設(shè)計(jì)系提供有讓一個(gè)進(jìn)程訪問(wèn)另一個(gè)進(jìn)程執(zhí)行映象的手段。最后描述一個(gè)筆者自行設(shè)計(jì)的、基于遠(yuǎn)程調(diào)試的、針對(duì)通訊方式-般采用 包Package )的形式進(jìn)行同步傳輸。主MPP體系結(jié)構(gòu)的并行源級(jí)調(diào)試器Pdebug。 文章主要介紹其遠(yuǎn)機(jī)送往目標(biāo)機(jī)的為請(qǐng)求包,目標(biāo)送往主機(jī)的包為回答包。當(dāng)主程調(diào)試的具體實(shí)現(xiàn)。機(jī)或目標(biāo)機(jī)任-方發(fā)送一個(gè)包進(jìn)行本方的處理后都處于等典型的MPP系統(tǒng)由控制結(jié)點(diǎn)和并行處理機(jī)陣列組成并待wait接收下一個(gè)包的狀態(tài)。行處理機(jī)陣列由多個(gè)同構(gòu)的計(jì)算結(jié)點(diǎn)組成??刂平Y(jié)點(diǎn)與計(jì)算結(jié)一個(gè)請(qǐng)求包通常應(yīng)包含的內(nèi)容有調(diào)試請(qǐng)求、參數(shù)以及是點(diǎn)通過(guò)點(diǎn)對(duì)點(diǎn)高速通道進(jìn)行通訊,計(jì)算結(jié)點(diǎn)之間采用3維互聯(lián)否跟有附屬包。請(qǐng)求一般 包括有控制進(jìn)程執(zhí)行的步進(jìn)( step和網(wǎng)絡(luò)連接以IPC機(jī)制作為通訊手段?;謴?fù)( continue )訪問(wèn)數(shù)據(jù)的內(nèi)存讀寫(xiě)( get/GET和寄存器讀寫(xiě)計(jì)算結(jié)點(diǎn)由于其處理任務(wù)的特殊性,一般只具備支持?jǐn)?shù)學(xué)計(jì)( memory/MEMORY等等?;卮鸢膬?nèi)容應(yīng)包含:目標(biāo)程序停算的系統(tǒng)環(huán)境因而只有很少的調(diào)試支持。采用遠(yuǎn)程調(diào)試機(jī)制止?fàn)顟B(tài)、寄存器狀態(tài)請(qǐng)求的數(shù)據(jù)內(nèi)容以及請(qǐng)求是否正確完成。是解決并行調(diào)試器設(shè)計(jì)中克服計(jì)算結(jié)點(diǎn)弱調(diào)試支持的最有效GDB的請(qǐng)求和回答數(shù)據(jù)被包裹在-個(gè)稱為調(diào)試包的結(jié)構(gòu)中。方法。其內(nèi)容描述如下:5.1 Pdebug 總體結(jié)構(gòu)structcommpkt {Pdebug邏輯上由三部分組成主控調(diào)試器MDB本地調(diào)試char req ;//請(qǐng)求碼器GDB調(diào)試服務(wù)器Server(見(jiàn)圖2 ) Server與目標(biāo)任務(wù)- -同運(yùn)nt len//數(shù)據(jù)傳輸長(zhǎng)度unsigned char *iocn. addr ; //數(shù)據(jù)傳輸 主機(jī)緩沖區(qū)地址行在計(jì)算結(jié)點(diǎn)上用戶并發(fā)進(jìn)程中的每個(gè)進(jìn)程對(duì)應(yīng)一個(gè)本計(jì)算結(jié)點(diǎn)上的ServerServer負(fù)責(zé)監(jiān)控本結(jié)點(diǎn)上用戶進(jìn)程的行為,CORE_ ADDR pn_ addr; // 數(shù)據(jù)傳輸目標(biāo)機(jī)地址int reg _num ;//讀寫(xiě)寄存器號(hào)對(duì)于每對(duì)目標(biāo)進(jìn)程和Server ,在控制結(jié)點(diǎn)上對(duì)應(yīng)- -個(gè)基于 U-unsigned char *reg addr; //主機(jī)寄存 器緩沖區(qū)地址nix的源級(jí)調(diào)試器GDB完成源級(jí)調(diào)試的核心處理。主控制調(diào)試nt stop_ status ;//目標(biāo)程序停止?fàn)顟B(tài)器是整個(gè)調(diào)試系統(tǒng)的主控部分,同時(shí)起前端及用戶界面作用。char rel_ code ;//回答包狀態(tài)碼表2給出了GDB通訊包協(xié)議內(nèi)容。;控制結(jié)點(diǎn)表2 GDB 通訊包L主控明試置MDB請(qǐng)求請(qǐng)求碼.包內(nèi)容描述GDB .....| GDB讀寄存器reg adder寄存器目標(biāo)地址len寄存器的內(nèi)容長(zhǎng)度回答包ret code = Q(ok)第二條返回?cái)?shù)據(jù)傳輸寄存器內(nèi)容開(kāi)結(jié)點(diǎn)汗算結(jié)點(diǎn)ret_ code = E(err) 第二條返回?cái)?shù)據(jù)包含錯(cuò)誤信息[ Severl Server寫(xiě)寄存器reg_ _addr 寄存器目標(biāo)地址(戶任務(wù))(用戶任務(wù))len 寄存器的內(nèi)容長(zhǎng)度回答包ret_ code=O成功接收.......................ret_ _code=E接收失敗圖2 Pdebug的總體結(jié)構(gòu)第二條返回?cái)?shù)據(jù)包含錯(cuò)誤信息讀內(nèi)存npr_ addr目標(biāo)任務(wù)內(nèi)存地址5.2遠(yuǎn)程 調(diào)試實(shí)現(xiàn)len數(shù)據(jù)長(zhǎng)從Pdebug的總體結(jié)構(gòu)可以看出,- 條由GDB和Server組iocn. addr :GDB接收數(shù)據(jù)緩存地址0讀成功成的調(diào)試線就是-個(gè)遠(yuǎn)程調(diào)試系統(tǒng)GDB為本地調(diào)試Server第二條返回?cái)?shù)據(jù)為所讀內(nèi)存的內(nèi)容是調(diào)試服務(wù)器。其遠(yuǎn)程調(diào)試的實(shí)現(xiàn)利用了GDB的調(diào)試目標(biāo)抽第二條返回?cái)?shù)據(jù)為錯(cuò)誤信息象機(jī)制文章首先分析GDB的這一機(jī)制然后介紹如何用這一寫(xiě)內(nèi)存Mpn_ addr :自標(biāo)任務(wù)內(nèi)存地址機(jī)制完成遠(yuǎn)程調(diào)試設(shè)置。iocn_ addr :待寫(xiě)數(shù)據(jù)的GDB緩存地址5.2.1 GDB 對(duì)調(diào)試目標(biāo)的抽象-target寫(xiě)成功從靜態(tài)的角度看CDB可以調(diào)試多種可執(zhí)行文件格式如第二條發(fā)送數(shù)據(jù)為寫(xiě)入數(shù)據(jù)a.out coff 以及庫(kù)檔案:從動(dòng)態(tài)的角度看.CDB可以調(diào)試尚未運(yùn)寫(xiě)有錯(cuò)行的文件、中國(guó)煤化工攻后的內(nèi)存映象文件。恢復(fù)目標(biāo)任務(wù)執(zhí)行Cpn_ add執(zhí)行開(kāi)始地址CDB將它能YHCNMHGargel。步進(jìn).pn_ addr執(zhí)行開(kāi)始地址GDB定義了4種調(diào)試target none core exec child。none對(duì)于s. C請(qǐng)求,調(diào)試服務(wù)器不能立即發(fā)送回答包須等到表示當(dāng)前沒(méi)有調(diào)試對(duì)象core表示當(dāng)前的調(diào)試對(duì)象為core目標(biāo)程序執(zhí)行停止后才能向主機(jī)發(fā)回答包。此時(shí)除ret .codedump文件jexee和child目標(biāo)涉及可執(zhí)行文件,分別表示可執(zhí)外包中還有如下回答信息:行文件在調(diào)試過(guò)程中的不同階段,當(dāng)可執(zhí)行文件沒(méi)有運(yùn)行時(shí),計(jì)算機(jī)工程與應(yīng)用2001.1 127就是一個(gè)exec目標(biāo),一旦發(fā)布run" 命令就成為child 目標(biāo)。5.3遠(yuǎn)程 調(diào)試設(shè)置child目標(biāo)執(zhí)行終止則可執(zhí)行文件又成為了exec目標(biāo)。將它們組合成-個(gè)遠(yuǎn)程調(diào)試系統(tǒng)的方法是置GDB為遠(yuǎn)程.5.2.2調(diào)試函數(shù)的抽象說(shuō)明一-arget ops調(diào)試模式,即向GDB發(fā)布target remote" 命令使得當(dāng)可執(zhí)行有了target這種抽象,GDB對(duì)各種調(diào)試對(duì)象的控制就歸文件成為child" 目標(biāo)時(shí)GDB選擇remote_ _ops" 為當(dāng)前tar-結(jié)為了對(duì)target 的控制,為此CDB為target定義了一種對(duì)tar-get_.ops。remote.ops中各函數(shù)指針指向的函數(shù)將遵循遠(yuǎn)程調(diào)試get進(jìn)行調(diào)試控制所需要的調(diào)試函數(shù)的集合的抽象- -tar-協(xié)議將對(duì)遠(yuǎn)程target的控制請(qǐng)求轉(zhuǎn)換成各種調(diào)試命令的發(fā)送get_ops,target._ops是-個(gè)由函數(shù)指針組成的結(jié)構(gòu),其基本元與反饋消息的接收。素有:Struct larget. _ops {6結(jié)束語(yǔ)void(* to. resume X );//恢復(fù)目標(biāo)運(yùn)行文章介紹了遠(yuǎn)程調(diào)試的基本原理、設(shè)計(jì)方法。已設(shè)計(jì)的基void(* to _waitXI );//等待目標(biāo)停止于遠(yuǎn)程調(diào)試的并行調(diào)試器Pdebug已經(jīng)成功地運(yùn)行在-種MPPvoidK* to. felch. register ); //讀目標(biāo)寄存器巨型機(jī)系統(tǒng)上,為該系統(tǒng)的并行應(yīng)用開(kāi)發(fā)提供了良好的調(diào)試手void(* to_ store_ registerX ); //寫(xiě) 寄存器段。(收稿日期2000年1月)in(* to. _xfer. memory)I );//訪問(wèn)內(nèi)存in(* to. _insert_ breakpointX ); //插入段點(diǎn)參考文獻(xiàn)int(* to_ remove_ breakpoint I );//移去段點(diǎn)1.Robert Pizzi.GNU Debugger Internal Archiechre.Department of Ap-void(* to_ creat_ inferior Y );//建立目標(biāo)進(jìn)程plied Science University of California Davis Lawrence LivermoreNational Laboratory ,1993.12 ;16:94-006665GDB的調(diào)試控制策略是對(duì)target的各種調(diào)試控制最終將2.Debugging with GDB.Edition 4 GDB Version 4.2.Copyrighl( C )1995轉(zhuǎn)化為對(duì)target_ .ops 中函數(shù)的引用,即GDB對(duì)target 最底層Free Software Foundation ,Inc.1995.1.14的控制都由相應(yīng)target_ _ops 提供。GDB 提供的target_ _ops有:3.Digital UNIX Ladebug Debugger Manual.Digital Equipment Corpora-core_ops定義了對(duì)core目標(biāo)的低層操作。tion :1996. exec _ops 定義了對(duì)exee目標(biāo)的低層操作。4.Cray TotalView Debugger.Cray Research ,Inc. 1994 ,1995child_ ops :當(dāng)target 為child 時(shí)運(yùn)行在基于ptrace服務(wù)環(huán)5.Svenkatesan,Brahma Dathan.Test and Debugging Distributed Progra-境下的調(diào)試函數(shù)。ms Using Global Predicates.IEEE Transactions on Software Engineer-. procfs. ops: 當(dāng)target 為child時(shí)運(yùn)行在基于進(jìn)程文件ing ,1995.2;212):163-177系統(tǒng)環(huán)境下的調(diào)試函數(shù)。6.Mariano G Fernandes Sumit Ghosh.Ddbx- -LPP :A Dynamic SoftwareTool for Debugging Asynchronous Distributed Algorithms on Loosely.remote_.ops進(jìn)行遠(yuǎn)程調(diào)試時(shí)的調(diào)試函數(shù)。Coupled Parallel Processors.J.System Softw根據(jù)系統(tǒng)配置以及用戶設(shè)置CDB將選擇適合當(dāng)時(shí)環(huán)境7.High Performance Debugging Forum.HPD Version 1 Standard Com- -的target.ops來(lái)完成底層控制。mand Interface for Parallel Debuggers ,1997中國(guó)煤化工MYHCNMHG128 2001.1 計(jì)算機(jī)工程與應(yīng)用
-
C4烯烴制丙烯催化劑 2020-11-03
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-11-03
-
生物質(zhì)能的應(yīng)用工程 2020-11-03
-
我國(guó)甲醇工業(yè)現(xiàn)狀 2020-11-03
-
石油化工設(shè)備腐蝕與防護(hù)參考書(shū)十本免費(fèi)下載,絕版珍藏 2020-11-03
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡(jiǎn)介 2020-11-03
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-11-03
-
甲醇制芳烴研究進(jìn)展 2020-11-03
-
精甲醇及MTO級(jí)甲醇精餾工藝技術(shù)進(jìn)展 2020-11-03




