亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

在調(diào)試異構(gòu)體系結(jié)構(gòu)中的集成可執(zhí)行程序時設(shè)置斷點的方法和設(shè)備的制作方法

文檔序號:6419866閱讀:196來源:國知局
專利名稱:在調(diào)試異構(gòu)體系結(jié)構(gòu)中的集成可執(zhí)行程序時設(shè)置斷點的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及多處理,具體而言,本發(fā)明涉及在面向并行處理器計算系統(tǒng)中的多個處理器的代碼和數(shù)據(jù)上使用調(diào)試程序。
背景技術(shù)
在計算機技術(shù)中,并行處理非常重要。并行處理通常包括使用多個連接到同一系統(tǒng)的微處理器,用來并發(fā)處理一批數(shù)據(jù)。并行處理一般主要包括三種。這些并行處理系統(tǒng)使用共享存儲器或分布式存儲器或二者的組合。一般情況下,共享存儲器是可以由多個處理器以單個操作,如“加載”或“讀”命令來訪問的存儲器。分布式存儲器是被本地化成單個處理器的存儲器。換句話說,每個處理器都可以在單個的訪問操作中訪問與其本身相關(guān)聯(lián)的存儲器,但無法在單個操作中訪問與其他處理器相關(guān)聯(lián)的存儲器。最后,還有一種混合或“異構(gòu)”的并行處理,其中既有共享存儲器又有分布存儲器。
典型的這樣一種混合并行處理器系統(tǒng)包括一個精減指令集(RISC)主處理器單元(MPU),如PowerPCTM處理器,和一個專用或“附加”處理器(APU),如SynergisticTMAPU(SPU)。一般而言,使用MPU來執(zhí)行通用代碼,其中通用代碼包括復(fù)雜控制流并協(xié)調(diào)總體的混合并行處理功能。MPU能夠訪問所有的系統(tǒng)存儲器。APU通常用來執(zhí)行數(shù)據(jù)流操作。也就是說,APU計算高度重復(fù)的多媒體、圖形、信號或網(wǎng)絡(luò)處理工作量,這些工作量的特點是具有高的計算與控制決策比例。在常規(guī)的混合系統(tǒng)中,APU無法訪問系統(tǒng)存儲器,并且其本身的存儲器,即局部存儲器,通常比共享存儲器小。
一般情況下,使用混合系統(tǒng)雖然提供了高的計算性能,但對編程模型提出了重大的挑戰(zhàn)。這類問題與APU相關(guān)。APU無法直接尋址系統(tǒng)存儲器。因此,任何代碼要在APU上運行,必須先傳送到與APU相關(guān)聯(lián)的局部存儲器,然后才能在APU上執(zhí)行此代碼。此外,APU和MPU還可以具有不同的指令集。
此外,還存在與調(diào)試要被編譯和鏈接以在獨立的執(zhí)行環(huán)境中運行的有關(guān)軟件調(diào)試其他問題。為幫助解決軟件設(shè)計和實現(xiàn)過程中存在的各種問題,程序員使用調(diào)試程序。一般而言,調(diào)試程序使用的低級操作按照三種原語之一進行分類。第一種調(diào)試程序原語涉及在一個已經(jīng)定義的位置停止程序。這要求調(diào)試程序(1)識別與函數(shù)名稱、文件/行號或其他唯一標識源代碼結(jié)構(gòu)關(guān)聯(lián)的地址,以及(2)設(shè)置一個斷點。
第二個調(diào)試程序原語是關(guān)于將一個程序位置映射到函數(shù)名稱、文件/行號或其他唯一標識源代碼結(jié)構(gòu)關(guān)聯(lián)的地址。這要求調(diào)試程序?qū)⒁粋€存儲器地址映射到這種源結(jié)構(gòu)。所映射的存儲器地址通常是程序計數(shù)器PC的當前地址,程序計數(shù)器PC涉及到由調(diào)試程序再次讀取PC寄存器的值。本領(lǐng)域技術(shù)人員應(yīng)該理解,程序計數(shù)器包括當前正在執(zhí)行的指令的存儲器地址。
第三個調(diào)試程序原語允許讀取和寫入程序數(shù)據(jù)。這要求調(diào)試程序識別與數(shù)據(jù)對象或變量相關(guān)的存儲器地址。一般情況下,設(shè)置斷點與讀訪問或?qū)懺L問地址存儲器位置的內(nèi)容結(jié)合使用。
通常,上述三個原語中的每一個包括一個映射步驟和一個操作步驟。映射步驟識別可執(zhí)行對象代碼和源代碼之間的相關(guān)性,而操作步驟包括由調(diào)試程序執(zhí)行的其他操作。為了執(zhí)行映射步驟,調(diào)試程序使用最初由編譯器生成并由鏈接器更新的映射表和調(diào)試表,對每個程序?qū)ο蟮奈恢谩⒚總€標簽、文件/行號和對象地址之間的相關(guān)性、變量的布置、堆棧的布置等等進行描述。
通常,在非異構(gòu)體系結(jié)構(gòu)中為調(diào)試程序設(shè)置斷點采用如下兩種方式。第一種方式是在帶有陷阱指令的“斷點”,或者在將要中斷程序的正常執(zhí)行的其他序列替換所選擇的指令或數(shù)據(jù),并將控制傳送給調(diào)試程序。第二種方式是用斷點的地址值(或地址范圍)初始化斷點寄存器。硬件比較程序計數(shù)器,即包含執(zhí)行的指令地址的寄存器,與一個或多個斷點寄存器的值。如果值匹配,則在斷點寄存器中的值與程序計數(shù)器匹配時,將控制轉(zhuǎn)移到調(diào)試程序。匹配可以包括各種匹配函數(shù),如“等于”,“落入一個范圍”,“小于”,“大于”或其它布爾函數(shù)。
但是,在異構(gòu)體系結(jié)構(gòu)中設(shè)置斷點會更加復(fù)雜。例如,單獨處理器組件的指令集可以不同。這在調(diào)試中會帶來問題。例如,根據(jù)是否將一個模塊加載到第二執(zhí)行環(huán)境,該模塊的各種代碼配置是不同的。此外,當在可以加載和卸載的模塊中設(shè)置斷點時,在這種加載和卸載活動中與所請求的斷點相一致,正確地保持斷點是很重要的。因此,當一個模塊由另一個模塊取代,并在之后重新加載時,必須注意在斷點已經(jīng)設(shè)置時保持所有斷點。
因此,希望有一個能夠在混合并行處理系統(tǒng)使用的調(diào)試程序,能夠克服常規(guī)調(diào)試程序的局限性。

發(fā)明內(nèi)容
本發(fā)明提供了一個第一執(zhí)行環(huán)境,一個第二執(zhí)行環(huán)境,以及一個斷點請求。模塊帶有與之相關(guān)聯(lián)的請求斷點。該模塊在執(zhí)行從第一執(zhí)行環(huán)境向第二執(zhí)行環(huán)境的傳送時使用。還提供了一個斷點請求表。讀取該斷點請求表,從該斷點請求表提取斷點標記。斷點標記在將一個斷點插入到與該斷點請求相關(guān)的地址時使用。
附圖簡要說明為了更全面地理解本發(fā)明及其各種優(yōu)點,下面將結(jié)合附圖對本發(fā)明進行詳細說明,其中附圖為

圖1概括地描述了一種其中使用調(diào)試程序的混合并行處理環(huán)境;圖2描述了在與APU相關(guān)的局部存儲器中設(shè)置斷點的方法;圖3描述了當從系統(tǒng)存儲器向與APU相關(guān)的局部存儲器加載模塊時,在與APU相關(guān)的存儲器中設(shè)置斷點的方法;圖4描述從局部存儲器和系統(tǒng)存儲器刪除斷點的方法。
具體實施例方式
在下文中闡述了各種特定的細節(jié)以便于全面地理解本發(fā)明。但是,本領(lǐng)域普通技術(shù)人員應(yīng)該認識到本發(fā)明不需要這些特定細節(jié)的內(nèi)容也可以實現(xiàn)本發(fā)明。在其他的實例中,對公知的部件用示意圖或框圖的形式來說明,以免不必要的細節(jié)妨礙對本發(fā)明的清楚理解。此外,對于大部分內(nèi)容,關(guān)于網(wǎng)絡(luò)通信、電磁信號技術(shù)等的細節(jié)內(nèi)容均略去,因為這些內(nèi)容對完整地理解本發(fā)明是不必要的,并且這些內(nèi)容應(yīng)該是相關(guān)領(lǐng)域的普通技術(shù)人員能夠理解的。
還應(yīng)提起注意的是,除非另外指明,這里描述的所有功能都可以即用硬件又用軟件,或者用二者組合的形式實現(xiàn)。但在優(yōu)選實施例中,除非另外指明,這些功能是由處理器根據(jù)計算機程序代碼、軟件和/或被編程為執(zhí)行這些功能的集成電路執(zhí)行的,如計算機或電子數(shù)據(jù)處理器。
參考圖1,引用標記100通常指異構(gòu)并行處理體系結(jié)構(gòu),提供了一種環(huán)境,用來使用存根函數(shù)傳送信息。該體系結(jié)構(gòu)100包括一個分布式計算環(huán)境110和一個系統(tǒng)存儲器160,二者由一個接口150以電子方式連接。環(huán)境110包括多個APU120,每個都帶有其各自的局部存儲器125。環(huán)境110還包括一個MPU130,如RISC處理器及其一級緩沖存儲器135。在一個實施例中,MPU130通過一個信號路徑145連接到系統(tǒng)存儲器160。在一個實施例中,APU包括一個SPU。在另一個實施例中,使用了多個MPU。
環(huán)境110還包括一個存儲器流控制器(MFC)140。通常,MFC140用來實現(xiàn)MPU130和APU120處理器之間的數(shù)據(jù)移動和同步功能,并提供主系統(tǒng)存儲器160和局部存儲器125之間的數(shù)據(jù)傳送。在圖1中,MFC140通過接口150連接到系統(tǒng)存儲器160。
通常,MFC140根據(jù)主處理器130或APU120的請求,在系統(tǒng)存儲器160和APU120的局部存儲器125之間實現(xiàn)文本(即代碼)和數(shù)據(jù)這些信息的移動。因為APU120不能直接訪問系統(tǒng)存儲器160,MFC140根據(jù)傳送函數(shù),如在APU120或MPU130上運行的存根函數(shù)的請求,在系統(tǒng)存儲器160和APU120的局部存儲器125之間傳送信息。在一個實施例中,MFC140包括一個直接存儲器訪問(DMA)設(shè)備。
體系結(jié)構(gòu)100是可執(zhí)行程序在其中運行的一種環(huán)境,其中可執(zhí)行程序帶有內(nèi)嵌在其中的存根函數(shù)。在存根函數(shù)中,要由APU120使用的代碼和數(shù)據(jù)被封裝為一個軟件“對象”。通常,存根函數(shù)命令MFC140在兩個單獨的執(zhí)行環(huán)境,如系統(tǒng)存儲器160和局部存儲器125之間傳送信息。存根函數(shù)允許MPU130使代碼和數(shù)據(jù)流動到APU120的局部存儲器125進行處理,以便讓APU120執(zhí)行處理,然后讓APU120將經(jīng)過處理的數(shù)據(jù)流動回MPU130。由APU120執(zhí)行的數(shù)據(jù)和代碼處理對MPU130是不可見的,并允許MPU130并行執(zhí)行其他數(shù)據(jù)處理或程序流控制任務(wù)。
一般情況下,存根函數(shù)命令MFC140將代碼和數(shù)據(jù)從系統(tǒng)存儲器160中的指定地址流動到APU120的局部存儲器125。存根函數(shù)還命令MFC140命令A(yù)PU120處理數(shù)據(jù)。通常,存根函數(shù)是到APU120的單個輸入點。換句話說,APU120或者與其相關(guān)的局部存儲器125,通常只能通過存根函數(shù)訪問。在另一個實施例中,流動代碼中還包含其他存根函數(shù)。當APU120完成數(shù)據(jù)時,此流動存根函數(shù)允許APU120命令MFC140將經(jīng)過處理的數(shù)據(jù)發(fā)送回共享存儲器160。當存根對象存儲在APU120的局部存儲器125中時,對應(yīng)的存儲器地址改變?yōu)椴煌挠成錁擞洝?br> 嵌入在系統(tǒng)存儲器160和局部存儲器125中的存根對象可以在其代碼或數(shù)據(jù)中插入一個斷點。通常,該斷點允許編程人員在特定的代碼或數(shù)據(jù)位置停止執(zhí)行集成可執(zhí)行程序。這可以由環(huán)境100利用一個陷阱指令,或其它將中斷程序的正常執(zhí)行并將控制傳送到調(diào)試程序的類似序列實現(xiàn)。而且,環(huán)境100還可以用斷點的地址值(或地址范圍)來初始化一個斷點寄存器。硬件比較程序計數(shù)器與一個或多個斷點寄存器的值。調(diào)試程序還包括裝置,用于在控制已傳送到調(diào)試程序時讀取各個存儲器位置的內(nèi)容,并將該信息傳遞給編程人員。
現(xiàn)在看圖2,圖中所示為方法200,用于在可在第二執(zhí)行環(huán)境,如局部存儲器125中執(zhí)行的模塊中插入一個斷點。在開始步驟210后,方法200定位一個模塊,該模塊包含選定的映射標記,如變量、行號和文件名等。通常,該位置通過查詢一個映射標記表來執(zhí)行,該映射標記表記錄了在所需要的映射標記和所需要的模塊之間的對應(yīng)關(guān)系。映射標記的地址然后對應(yīng)于至少一個斷點的放置位置。
在步驟230中,方法200然后確定與所需要的斷點相關(guān)的模塊是否存儲在至少一個第二執(zhí)行環(huán)境,如局部存儲器125中。如果在至少一個第二執(zhí)行環(huán)境中沒有加載與所需要的斷點相關(guān)聯(lián)的選定模塊,方法200執(zhí)行步驟260。但是,如果在至少一個第二執(zhí)行環(huán)境中加載了一個選定模塊,則方法200確定該選定模塊被加載到附加APU120的哪個局部存儲器125。通常,通過查詢一個映射標記表來進行定位,在該映射標記表中記錄了模塊存儲在哪個局部存儲器125中的信息,如果局部存儲器中有模塊的話。
在步驟240中,方法200將地址從映射標記映射到所需要的斷點。映射地址240使用從加載模塊開始的所需要的偏移量定位加載模塊中所需要的斷點。在一個實施例中,映射地址240使用映射標記表進行這種確定。
在步驟250,方法200在所選定的加載模塊中,在步驟240中確定的映射地址設(shè)置一個斷點。設(shè)置斷點可以包括插入一個操作碼,如一個陷阱指令集,寫入APU120的一個斷點寄存器,或其他本領(lǐng)域技術(shù)人員知道的設(shè)置斷點的方法。在一個實施例中,當使用陷阱指令時,設(shè)置斷點還包括在插入斷點之前,將映射地址的內(nèi)容復(fù)制到存儲器的一個單獨的部分。這使得以后的時間,比如,刪除斷點時,將內(nèi)容恢復(fù)到斷點位置。
在步驟260,方法200確定包含選定模塊的所有APU的局部存儲器125已經(jīng)由步驟240和250確定和處理過。如果沒有,方法200重復(fù)步驟230。如果所有包含選定模塊的APU120都經(jīng)過確定和處理,則執(zhí)行步驟270。
在步驟270,生成并記錄與對應(yīng)于局部存儲器125的斷點相關(guān)聯(lián)的斷點信息和標記。此斷點信息和標記通常包括存儲在共享存儲器160中信息。通常,斷點標記用于將來將同一模塊加載到第二執(zhí)行環(huán)境。
在第一執(zhí)行環(huán)境中,斷點信息,如映射地址240所生成的信息,包括一個陷阱指令,該陷阱指令寫入系統(tǒng)存儲器160中的未加載模塊的映像,從而重寫其中嵌入的一些信息。因此,當復(fù)制選定模塊將其加載到第二執(zhí)行環(huán)境中,將預(yù)先加載該斷點。同樣,在步驟250,設(shè)置斷點還包括,在插入調(diào)試之前,將映射地址的內(nèi)容復(fù)制到存儲器的一個單獨部分。
在另一個實施例中,未加載模塊映像本身中的信息不重寫。相反,創(chuàng)建一個斷點請求,將該斷點請求加載到斷點請求總表中。使用斷點請求可以歸因于下列因素,如,存儲在只讀存儲器中的選定模塊映像,為了指示斷點,使用斷點寄存器取代將陷阱指令插入到指令流中,設(shè)法阻止包含一個或多個其它裝置的專利,等等。在此第二實施例中,當模塊映像從系統(tǒng)存儲器160加載到局部存儲器125時,環(huán)境100查詢斷點總表確定是否應(yīng)在此加載模塊中插入一個斷點,并且,如果插入,插入在什么位置。
在步驟280,方法200確定是否所有帶有請求映射標記,并且與請求斷點相關(guān)的模塊都已被選定,并由方法200處理。如果未選定帶有請求映射標記的所有模塊,并且未由方法200處理,則開始步驟220。如果選定并處理,則方法200在步驟290結(jié)束。如果帶有請求映射標記的全部模塊都已被選定并由方法200處理,則開始步驟220。
現(xiàn)在看圖3。圖中所示為方法300,用于將模塊加載到第二環(huán)境中時通過使用斷點總表來插入斷點。通常,在要加載的模塊的主拷貝在系統(tǒng)存儲器160中未曾修改時使用方法300。在開始步驟310后,步驟320將一個模塊從第一執(zhí)行環(huán)境加載到APU120的局部存儲器125中。在步驟330中,方法300讀取斷點請求表,以查看在斷點請求總表中是否有斷點請求。步驟340確定是否請求了斷點。如果沒有請求斷點,則結(jié)束步驟350。
但是,如果有斷點請求,則執(zhí)行步驟360。步驟360讀取斷點請求以確定需要哪個映射標記。然后,方法300訪問映射表,其中存儲了標記的偏移值。此偏移值是將在加載模塊中插入斷點的位置。
在步驟370,在步驟360所指示的位置,在加載模塊中插入一個斷點。與方法200相似,設(shè)置斷點進一步包括,在插入調(diào)試之前,將映射地址的內(nèi)容復(fù)制到存儲器的單獨部分。在步驟370,斷點的地址將寫入與特定第二執(zhí)行環(huán)境,如APU120的局部存儲器125相關(guān)聯(lián)的斷點寄存器。在一個實施例中,每個這些單獨的執(zhí)行環(huán)境都有一個獨立的斷點寄存器集合。
在步驟380,方法300確定是否對應(yīng)于當前模塊的斷點請求表中的所有斷點都已插入到加載模塊中。如果沒有,執(zhí)行步驟360,然后確定下一個斷點的映射地址。如果對應(yīng)于當前模塊的斷點請求表中的所有斷點都已插入到加載模塊中,方法300結(jié)束。
現(xiàn)在看圖4,其中公開了用于刪除斷點的方法400。盡管方法400說明了刪除主存儲器代碼(即以在第一執(zhí)行環(huán)境中執(zhí)行為目標的代碼)以及相關(guān)的附加代碼模塊中的斷點,但不要求在主代碼模塊中設(shè)置或刪除斷點。
在開始步驟410后,方法400確定是否存在一個斷點,該斷點與要在MPU130的主模塊中刪除斷點的當前的映射標記相關(guān)。如果不存在這樣的斷點,則執(zhí)行步驟450。但是,如果主模塊中有這樣的斷點,則在步驟430,刪除相應(yīng)的陷阱指令,并在步驟440恢復(fù)原始代碼。
在步驟450,方法400確定是否存在與針對APU120的模塊相關(guān)的斷點。在一個實施例中,通過將映射標記映射到一個動態(tài)事件列表來確定,即通過列舉可能的斷點來確定,這些斷點與相關(guān)斷點要被刪除的映射標記相關(guān)聯(lián)。在另一個實施例中,可以用用戶指定的斷點號或其他標識符來訪問斷點請求表。如果沒有與APU120相關(guān)的斷點,則方法400在步驟460結(jié)束,但是,如果有與APU120相關(guān)的斷點,則方法400執(zhí)行步驟470。
但是,在步驟470,如果模塊仍加載到存儲器中,則訪問映射表,然后確定該斷點的存儲器偏移。在一個實施例中,在步驟480刪除選定加載模塊中的陷阱指令,然后在步驟485恢復(fù)模塊中的原始代碼。在另一個實施例中,通過刷新包含與此斷點相關(guān)的地址的斷點寄存器來替換步驟480和485。
在步驟490,還刪除了斷點的標記。在一個實施例中,這包括從主存儲器160中相應(yīng)的模塊映像刪除陷阱指令。在另一個實施例中,從斷點請求總表刪除對應(yīng)的斷點請求。因此,無需在加載時間插入此特定的斷點,就可以加載或卸載選定的模塊。在步驟490之后,執(zhí)行步驟492。通常,步驟492確定是否還有模塊帶有為斷點設(shè)置,并加載到另一個單獨的執(zhí)行環(huán)境,如第二APU120的局部存儲器125,的標記。如果有多個加載了斷點的模塊,則執(zhí)行步驟470。如果沒有,則結(jié)束步驟495。
應(yīng)該理解,本發(fā)明可以采用許多形式和實施例。因此,在不背離本發(fā)明的實質(zhì)或范圍的前提下,可以對上述內(nèi)容進行各種改變。本文所概括的功能允許用各種可能的編程模型實現(xiàn)。不應(yīng)把本文公開的內(nèi)容看成優(yōu)于任何特定的編程模型,這些內(nèi)容都是針對構(gòu)建這些編程模型的基礎(chǔ)機制。
在引用某些優(yōu)選實施例對本發(fā)明進行說明之后,應(yīng)該認識到所公開的實施例都是說明性的,而不在實質(zhì)上構(gòu)成限制,各種各樣的改變、修改、變更和替換都已涵蓋在上述公開內(nèi)容中。在一些情況下,可以使用本發(fā)明的一些特征,而相應(yīng)地不使用另外一些特征。根據(jù)上述關(guān)于優(yōu)選實施例的說明,許多改變和調(diào)整對本領(lǐng)域技術(shù)人員來講都是明顯而必須的。因此,以與發(fā)明的范圍相一致的方式,用合理寬的范圍解釋本說明書所附加的權(quán)利要求書是適當?shù)摹?br> 權(quán)利要求
1.一種在第二執(zhí)行環(huán)境中設(shè)置斷點的方法,包括選擇與斷點相關(guān)的映射標記;返回一個對應(yīng)于映射標記的存儲器地址;選擇與至少一個第二執(zhí)行環(huán)境中的執(zhí)行相關(guān)聯(lián)的一個代碼模塊,其中所選擇的代碼模塊包含所選擇的映射標記;確定是否將所選擇的代碼模塊從至少一個第一執(zhí)行環(huán)境加載到至少一個第二執(zhí)行環(huán)境;如果至少一個第二執(zhí)行環(huán)境包含所選擇的代碼模塊,在該第二執(zhí)行環(huán)境中的返回的存儲器地址設(shè)置斷點;如果第二執(zhí)行環(huán)境包含所選擇的代碼模塊,生成與設(shè)置斷點相關(guān)聯(lián)的斷點標記;以及記錄該斷點標記,其中該斷點標記包含可用來將該模塊加載到至少一個第二執(zhí)行環(huán)境的信息。
2.根據(jù)權(quán)利要求1的方法,其特征在于,針對在第二執(zhí)行環(huán)境中的執(zhí)行選擇至少一個代碼模塊的步驟還包括,選擇針對在第二個執(zhí)行環(huán)境中執(zhí)行的多個代碼模塊。
3.根據(jù)權(quán)利要求1的方法,其特征在于,存儲器地址嵌入在第一執(zhí)行環(huán)境中,并且還包括將存儲器地址的內(nèi)容復(fù)制到一個獨立的信息存儲位置的步驟。
4.根據(jù)權(quán)利要求1的方法,其特征在于,插入斷點的步驟包括插入一個陷阱函數(shù)。
5.根據(jù)權(quán)利要求1的方法,其特征在于,設(shè)置斷點的步驟還包括在駐留在第一執(zhí)行環(huán)境的相應(yīng)模塊映像的相應(yīng)存儲器地址中插入一個操作代碼。
6.根據(jù)權(quán)利要求1的方法,其特征在于,所加載的代碼模塊被加載到第二執(zhí)行環(huán)境,并且還包括確定第二執(zhí)行環(huán)境中所加載的代碼模塊的加載存儲器地址。
7.根據(jù)權(quán)利要求3的方法,其特征在于,插入操作代碼的步驟包括使用由映射地址返回的地址和所加載的代碼模塊的加載存儲器地址二者的和。
8.根據(jù)權(quán)利要求1的方法,還包括如果存儲器地址對應(yīng)于第一執(zhí)行環(huán)境,則在第二執(zhí)行環(huán)境中對應(yīng)的存儲器地址插入斷點。
9.根據(jù)權(quán)利要求1的方法,其特征在于,記錄信息包括修改共享存儲器中所選擇代碼模塊的相應(yīng)的映像。
10.根據(jù)權(quán)利要求1的方法,其特征在于,記錄信息包括向斷點請求表寫入信息。
11.一種在將模塊從第一執(zhí)行環(huán)境加載到第二執(zhí)行環(huán)境時插入斷點的方法,包括將模塊加載到第二執(zhí)行環(huán)境;確定是否為所加載的模塊選擇了斷點;以及在所加載的模塊中插入斷點。
12.根據(jù)權(quán)利要求11的方法,其特征在于,確定步驟包括讀取一個斷點請求表。
13.根據(jù)權(quán)利要求11的方法,還包括將對應(yīng)于加載模塊的斷點的存儲器地址的內(nèi)容復(fù)制到單獨的信息存儲位置。
14.一種用來刪除并行處理器體系結(jié)構(gòu)中的斷點的方法,包括選擇一個要刪除的斷點;確定所選擇的要刪除的斷點是否與第一執(zhí)行環(huán)境或第二執(zhí)行環(huán)境中的存儲器地址相關(guān);刪除與所確定的執(zhí)行環(huán)境相關(guān)的斷點;確定是否已經(jīng)為與所確定的執(zhí)行環(huán)境相關(guān)聯(lián)的斷點記錄了斷點請求;以及如果已經(jīng)記錄了斷點請求,則刪除該斷點。
15.根據(jù)權(quán)利要求14的方法,還包括在斷點插入原始信息。
16.根據(jù)權(quán)利要求14的方法,其特征在于,刪除所確定的環(huán)境中的斷點的步驟還包括,刪除存儲在共享存儲器中的主模塊中的斷點。
17.根據(jù)權(quán)利要求14的方法,其特征在于,刪除所確定環(huán)境中的斷點的步驟還包括,刪除與一個加載模塊對應(yīng)的模塊映像中的斷點,其中對應(yīng)于該加載模塊的模塊映像存儲在共享存儲器中。
18.根據(jù)權(quán)利要求14的方法,其特征在于,所確定的執(zhí)行環(huán)境是第二執(zhí)行環(huán)境,并且還包括一個步驟,如果在其中嵌入了斷點的模塊加載到第二執(zhí)行環(huán)境,則查詢所確定的執(zhí)行環(huán)境。
19.根據(jù)權(quán)利要求14的方法,其特征在于,刪除所確定的第二執(zhí)行環(huán)境中的斷點的步驟包括,確定與該斷點相關(guān)聯(lián)的模塊是否加載到第二執(zhí)行環(huán)境中。
20.一種在并行處理環(huán)境中設(shè)置斷點的方法,包括在代碼中選擇一個斷點;確定所請求的斷點是否與要在第一執(zhí)行環(huán)境或第二執(zhí)行環(huán)境中執(zhí)行的代碼地址相關(guān);將斷點映射到其對應(yīng)的代碼存儲器地址;如果斷點與面向第一執(zhí)行環(huán)境的代碼相關(guān),在映射返回的地址插入一個操作代碼;如果斷點與加載到第二執(zhí)行環(huán)境的模塊相關(guān),在第二執(zhí)行環(huán)境中設(shè)置代碼的斷點。
21.根據(jù)權(quán)利要求20的方法,還包括記錄與所請求的斷點相關(guān)聯(lián)的信息,其中該信息包括將模塊加載到至少一個第二執(zhí)行環(huán)境時可以使用的標記。
22.根據(jù)權(quán)利要求20的方法,其中操作代碼包括一個陷阱函數(shù)。
23.根據(jù)權(quán)利要求20的方法,其中確定步驟還包括確定所請求的斷點是否映射到第一執(zhí)行環(huán)境和第二執(zhí)行環(huán)境。
24.根據(jù)權(quán)利要求20的方法,還包括用操作代碼重寫第一執(zhí)行環(huán)境中的信息的步驟。
25.根據(jù)權(quán)利要求24的方法,還包括在重寫信息的步驟之前,將要重寫的信息復(fù)制到單獨的信息存儲位置。
26.一個并行處理系統(tǒng),包括一個第一執(zhí)行環(huán)境;一個第二執(zhí)行環(huán)境;一個斷點請求表,其中該斷點請求表位于第一執(zhí)行環(huán)境;一個斷點請求標記,其中該斷點請求標記在從斷點請求表提取時使用,斷點請求標記還可以在將一個斷點插入在與斷點請求標記相關(guān)的地址時使用;以及一個所請求的斷點標記與之相關(guān)聯(lián)的模塊,其中該模塊還可以在從第一執(zhí)行環(huán)境向第二執(zhí)行環(huán)境傳送時使用。
27.用于在并行處理環(huán)境中設(shè)置斷點的計算機程序產(chǎn)品,該計算機程序產(chǎn)品具有一個其上收錄了一個計算機程序的介質(zhì),該計算機程序包括用于在代碼中選擇一個斷點的計算機代碼;用于確定所請求的斷點是否與要在第一執(zhí)行環(huán)境或第二執(zhí)行環(huán)境中執(zhí)行的代碼地址相關(guān)的計算機代碼;用于將斷點映射到其對應(yīng)的代碼存儲器地址的計算機代碼;如果斷點與面向第一執(zhí)行環(huán)境的代碼相關(guān),在映射返回的地址插入一個操作代碼的計算機代碼;如果斷點與加載到第二執(zhí)行環(huán)境的模塊相關(guān),在第二執(zhí)行環(huán)境中設(shè)置代碼的斷點的計算機代碼。
28.用于在并行處理環(huán)境中設(shè)置斷點的處理器,該包括一個計算機程序的處理器包括用于在代碼中選擇一個斷點的計算機代碼;用于確定所請求的斷點是否與要在第一執(zhí)行環(huán)境或第二執(zhí)行環(huán)境中執(zhí)行的代碼地址相關(guān)的計算機代碼;用于將斷點映射到其對應(yīng)的代碼存儲器地址的計算機代碼;如果斷點與面向第一執(zhí)行環(huán)境的代碼相關(guān),在映射返回的地址插入一個操作代碼的計算機代碼;如果斷點與加載到第二執(zhí)行環(huán)境的模塊相關(guān),在第二執(zhí)行環(huán)境中設(shè)置代碼的斷點的計算機代碼。
全文摘要
本發(fā)明用來在并行處理系統(tǒng)中插入和刪除斷點。斷點被插入到加載到附加處理器單元的執(zhí)行環(huán)境中的一個模塊中。該斷點可以直接插入。此外,該模塊的未加載映像也可以有一個與其關(guān)聯(lián)的斷點。該斷點可以直接插入到模塊映像中,也可以生成斷點請求,然后當該模塊加載到附加處理器單元的執(zhí)行環(huán)境時插入該斷點。
文檔編號G06F9/38GK1499363SQ200310101080
公開日2004年5月26日 申請日期2003年10月15日 優(yōu)先權(quán)日2002年10月24日
發(fā)明者邁克爾·K·克施溫德, 凱瑟琳·M.·奧布萊恩, 約翰·K.·奧布萊恩, 瓦倫蒂納·薩拉普羅, M. 奧布萊恩, K. 奧布萊恩, 納 薩拉普羅, 邁克爾 K 克施溫德 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1