国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      面向線程的調(diào)試的制作方法

      文檔序號:6467252閱讀:157來源:國知局
      專利名稱:面向線程的調(diào)試的制作方法
      背景技術(shù)
      發(fā)明領(lǐng)域本發(fā)明涉及計(jì)算機(jī)程序的調(diào)試,而更具體地涉及調(diào)試多個(gè)線程的能力。
      背景技術(shù)
      采用許多不同技術(shù)來方便計(jì)算機(jī)程序的調(diào)試。一種常用的技術(shù)為在出現(xiàn)預(yù)定的事件時(shí)停止程序線程(即一序列指令)的運(yùn)行并檢查諸如寄存器、RAM中的地址等各種存儲(chǔ)單元的內(nèi)容。以這一方式停止線程的非常有用的措施便是斷點(diǎn)。
      可將停止當(dāng)前正在運(yùn)行的線程的執(zhí)行的斷點(diǎn)設(shè)定為以多種多樣的方式出現(xiàn)。其實(shí)例包括在執(zhí)行特定指令時(shí)出現(xiàn)的斷點(diǎn)及訪問特定存儲(chǔ)單元時(shí)出現(xiàn)的斷點(diǎn)。使用斷點(diǎn)的特定指令類型的代表性實(shí)例示出在圖1A至1F中。
      圖1A示出要調(diào)試的線程中的一序列指令。各指令包含一操作碼后面跟隨與該相應(yīng)指令關(guān)聯(lián)的任何參數(shù)(如操作數(shù)、地址、數(shù)據(jù)等)。通常,每一個(gè)操作碼為一個(gè)字節(jié)長。在本例中,該序列包含三條指令,即指令A(yù)包括操作碼A后隨兩個(gè)相關(guān)參數(shù)A1與A2;指令B包含操作碼B后隨一個(gè)相關(guān)參數(shù)B1;以及指令C包含操作碼C后隨兩個(gè)相關(guān)參數(shù)C1與C2。
      傳統(tǒng)上,這些指令的每一條是在處理器中程序計(jì)數(shù)器的控制下按所示序列讀取與執(zhí)行的。
      圖1B示出在要調(diào)試的線程中如何設(shè)置斷點(diǎn)。具體地,調(diào)試器用HALT(停止)操作碼代替操作碼B。
      圖1C描繪當(dāng)處理器已執(zhí)行了指令A(yù)并已將程序計(jì)數(shù)器中的值PC增量到存儲(chǔ)HALT操作碼的地址時(shí)的瞬間。此時(shí),處理器停止運(yùn)行線程并直接或間接地通知調(diào)試器已到達(dá)了斷點(diǎn)。這能以多種方式完成,例如,由處理器激活中斷到調(diào)試器或由調(diào)試器周期性輪詢處理器的狀態(tài)來檢測處理器已到達(dá)HALT操作碼。
      如圖1D中所描繪的,調(diào)試器用讀取停止的線程的值PC來確定已到達(dá)(有可能許多)斷點(diǎn)中的哪一個(gè)來應(yīng)答HALT操作碼的通知。然后調(diào)試器將對應(yīng)的操作碼(即圖1B中已用HALT操作碼替換的“操作碼B”)寫入存儲(chǔ)器20中并命令處理器執(zhí)行下一條指令。在執(zhí)行該指令中,處理器將讀取新寫入的操作碼B并增量程序計(jì)數(shù)器以指示相關(guān)的單字節(jié)參數(shù)B1的單元。
      如圖1E中所描繪的,這時(shí)處理器讀取相關(guān)參數(shù)B1并將程序計(jì)數(shù)器增量到操作碼C的地址。在完成了指令B時(shí),處理器停止而調(diào)試器重新獲得控制權(quán)。
      如圖1F中所描繪的,在處理器執(zhí)行指令B之后但在讀取操作碼C之前,調(diào)試器重新用HALT操作碼替換程序流中的操作碼B。為了在線程中保持?jǐn)帱c(diǎn)這是必要的。
      從圖1中所示的實(shí)例能看出即使是單線程的斷點(diǎn)調(diào)試也能是復(fù)雜與耗時(shí)的過程。
      發(fā)明概述本發(fā)明的目的為提供比已知斷點(diǎn)調(diào)試技術(shù)更簡單與耗時(shí)較少的斷點(diǎn)調(diào)試方法。
      本發(fā)明的另一目的為提供在多線程軟件環(huán)境中便于一個(gè)線程的調(diào)試同時(shí)允許其它線程繼續(xù)運(yùn)行的調(diào)試方法。
      按照本發(fā)明的一種方式,調(diào)試具有要處理器運(yùn)行的一序列指令的程序線程的方法,包括用斷點(diǎn)指示符替換至少一條指令的選擇部分;將該選擇部分保存在預(yù)定的存儲(chǔ)單元中;順序通過這些指令直到到達(dá)斷點(diǎn)指示符為止;從該預(yù)定的存儲(chǔ)單元中讀取該選擇部分而不改寫斷點(diǎn)指示符;執(zhí)行多種預(yù)定的調(diào)試操作中至少一種。
      按照本發(fā)明的另一方式,用于有選擇地調(diào)試一個(gè)處理器能運(yùn)行的多個(gè)程序線程的方法包括在所述線程的每一個(gè)的各自的環(huán)境中提供運(yùn)行狀態(tài)指示符;運(yùn)行其狀態(tài)指示符在第一狀態(tài)中的每個(gè)線程;不運(yùn)行其狀態(tài)指示符在第二狀態(tài)中的每個(gè)線程。
      注意這里所使用的詞“存儲(chǔ)器”旨在解釋為與其使用方式相符地廣泛,并包括各種類型的易失性與非易失性器件,其中包括但不限于RAM、DRAM、ROM、寄存器及這些器件的組合。“專用”存儲(chǔ)器表示該存儲(chǔ)器具有處理器知道的一或多個(gè)特定單元。然而這些單元并不要求是固定的,而可在處理器的控制下改變。并且,如這里所使用的,詞“指針”表示標(biāo)識存儲(chǔ)單元的任何值。此外,“訪問”數(shù)據(jù)表示從存儲(chǔ)器得到數(shù)據(jù)或?qū)?shù)據(jù)放入存儲(chǔ)器。


      圖1A至1F示出已知的斷點(diǎn)技術(shù)。
      圖2為展示在說明本發(fā)明的較佳實(shí)施例中有用的示范處理系統(tǒng)的框圖。
      圖3A至3E示出按照本發(fā)明的實(shí)施例的斷點(diǎn)技術(shù)。
      最佳實(shí)施例描述圖2的處理系統(tǒng)包括處理器10與存儲(chǔ)器20。示范性處理器10為硬件加速的單元,它利用時(shí)鐘脈沖來順序通過用程序計(jì)數(shù)器寄存器標(biāo)識的指令。通常,程序計(jì)數(shù)器寄存器包含要由處理器讀取與作用在其上的下一條指令的存儲(chǔ)單元。
      處理器包含環(huán)境寄存器組12、指令譯碼器14、算術(shù)邏輯單元16、SS OPCODE(操作碼)寄存器17、SSTC PTR寄存器18、及包含OPCODEIS VALID(操作碼是有效的)標(biāo)志的寄存器19。在本示范性實(shí)施例中的存儲(chǔ)器20包括具有用于存儲(chǔ)多個(gè)線程環(huán)境及其它的許多存儲(chǔ)單元的RAM。
      處理器10與存儲(chǔ)器20連接在公共總線30上互相通信并與連接在總線上的其它硬件通信??偩€包含用于傳送諸如地址、中斷、數(shù)據(jù)、讀選通脈沖、寫選通脈沖與設(shè)備選擇選通脈沖等信息的相應(yīng)線路。最好,這是至少部分地形成在與處理器及存儲(chǔ)器的公共硅基板上的高速總線。
      環(huán)境寄存器組12包括多個(gè)用于包含當(dāng)前處理器10正在運(yùn)行的線程的環(huán)境的寄存器。在本較佳實(shí)施例中,寄存器組12包括包含該處理連續(xù)地更新以標(biāo)識要訪問的存儲(chǔ)器20中下一條指令的地址的PC值的程序計(jì)數(shù)器寄存器121;用于保持指示要存儲(chǔ)處理器當(dāng)前正在運(yùn)行的線程的環(huán)境的存儲(chǔ)器地址的指針TC PTR的寄存器122;
      用于保持與處理器當(dāng)前正在運(yùn)行的線程相關(guān)的STATUS(狀態(tài))信息的寄存器123;以及用于保持算術(shù)邏輯單元16從存儲(chǔ)器20讀取或生成的附加線程環(huán)境信息與數(shù)據(jù)及其它的一或多個(gè)附加寄存器125。
      指令譯碼器14為用于將讀自存儲(chǔ)器20的指令轉(zhuǎn)換成低級操作碼的傳統(tǒng)硬件部件,諸如定序器或微定序器。算術(shù)邏輯單元16也是傳統(tǒng)硬件部件。
      設(shè)置了SS OPCODE寄存器17、SS TC PTR寄存器18及SS OP FLAG(標(biāo)志)寄存器19用于保持對斷點(diǎn)調(diào)試特別相關(guān)的信息。具體地,寄存器17保持來自正在調(diào)試的線程(被調(diào)試線程)的操作碼,寄存器18保持與該被調(diào)試線程相關(guān)的指針SS TC PTR,而寄存器19保持與寄存器17相關(guān)的標(biāo)志。
      操作中,處理器一次運(yùn)行一個(gè)線程(當(dāng)前線程),但能用多種多樣的措施切換到任何其它線程,例如,用內(nèi)部定時(shí)器中斷,用外部中斷,或用當(dāng)前線程本身中的指令。如在本技術(shù)中眾所周知的,這是通常通過將當(dāng)前線程環(huán)境(保持在環(huán)境寄存器組12中的)存儲(chǔ)到包含在寄存器122中的指針TC PTR所指示的存儲(chǔ)器地址中來完成的。然后處理器將下一個(gè)要運(yùn)行的線程的相應(yīng)環(huán)境讀入環(huán)境寄存器組12中。
      圖3A至3E總的示出按照本發(fā)明的實(shí)施例的斷點(diǎn)調(diào)試的實(shí)例。在本實(shí)例中采用了示出在圖1A至1F中的在已知技術(shù)中使用的同一指令序列以便進(jìn)行比較。
      圖3A至3C與圖1A至1C完全相同。即,圖3A示出插入斷點(diǎn)操作碼之前的序列;圖3B示出調(diào)試器已代入斷點(diǎn)操作碼HALT;及圖3C描繪當(dāng)處理器已將程序計(jì)數(shù)器寄存器121中的值PC增量到存儲(chǔ)HALT操作碼的地址的瞬間。此時(shí),處理器也停止運(yùn)行該線程并通知調(diào)試器已到達(dá)斷點(diǎn)。
      如圖3D中所描繪的,調(diào)試器用讀取被停止的線程的值PC來應(yīng)答HALT操作碼的通知。然而,不是將操作碼B(已用HALT操作碼替換的)寫在HALT操作碼上,而是處理器將操作碼B寫入SS OPCODE寄存器17中,將HALT操作碼留在線程中,并置位OPCODE IS VALID標(biāo)志。然后,處理器將程序計(jì)數(shù)器增量到指示相關(guān)的單字節(jié)參數(shù)B1的單元。
      如圖3E中所描繪的,處理器讀取相關(guān)的參數(shù)B1,將程序計(jì)數(shù)器增量到操作碼C的地址,并執(zhí)行剛讀取的指令B。
      這樣消除了重新用HALT操作碼替換操作碼B所需的所有步驟。這通常包含在完成指令B時(shí)停止處理器,用HALT操作碼改寫操作碼B,然后恢復(fù)運(yùn)行停止的線程或不同的線程。
      執(zhí)行斷點(diǎn)調(diào)試的特定方式將取決于提供給調(diào)試器的選項(xiàng)及處理器正在運(yùn)行的線程的數(shù)目。按照本發(fā)明的較佳實(shí)施例,調(diào)試器提供有下述選項(xiàng),無論正在運(yùn)行的是一個(gè)還是多個(gè)線程,所有這些選項(xiàng)都可獲得停止運(yùn)行的線程;從斷點(diǎn)或從斷點(diǎn)以外的點(diǎn)的單步運(yùn)行;從斷點(diǎn)或從斷點(diǎn)以外的點(diǎn)恢復(fù)運(yùn)行。
      為了方便這些選項(xiàng),提供了標(biāo)志與命令供調(diào)試器與處理器使用,包含包含在各線程的STATUS(狀態(tài))信息中的RUNNING(運(yùn)行)標(biāo)志,它指示各自的線程正在運(yùn)行還是停止;包含在寄存器19中的OPCODE IS VALID標(biāo)志,它置位時(shí),指示等待執(zhí)行的操作碼已加載到SS OPCODE寄存器17中;復(fù)位時(shí),指示應(yīng)從程序流中取下一條指令;SINGLE-STEP(單步)命令,它導(dǎo)致處理器只執(zhí)行停止的線程中的下一條指令;RESUME(恢復(fù))命令,它導(dǎo)致處理器恢復(fù)停止的線程的運(yùn)行。
      如果正在運(yùn)行一個(gè)以上線程,正在受調(diào)試的各線程將在出現(xiàn)HALT操作碼時(shí)停止,并將該線程的RUNNING標(biāo)志復(fù)位。處理器將繼續(xù)輪流地處理所有線程,但每一次它訪問到停止的線程的環(huán)境時(shí),它將檢測到該線程的環(huán)境中的RUNNING標(biāo)志的復(fù)位狀態(tài),這時(shí)不做任何事情直到出現(xiàn)中斷為止,這導(dǎo)致處理器切換到序列中的下一線程。
      調(diào)試器可調(diào)試各設(shè)置一或多個(gè)斷點(diǎn)的一或多個(gè)線程。為了響應(yīng)斷點(diǎn)上HALT的出現(xiàn),調(diào)試器必須能定位HALT操作碼所替換的操作碼。調(diào)試器最好通過令處理器通知它處理HALT指令的線程的線程環(huán)境地址或通過訪問各被調(diào)試線程的線程環(huán)境中的狀態(tài)寄存器以檢測RUNNING標(biāo)志的狀態(tài)來做到這一點(diǎn)。注意,復(fù)位(即停止)狀態(tài)有可能同時(shí)存在在一個(gè)以上被調(diào)試線程中。
      停止運(yùn)行的線程調(diào)試器可選擇停止任何正在運(yùn)行的線程。為了做到這一點(diǎn),調(diào)試器將指令處理器用標(biāo)識保持運(yùn)行的被調(diào)試線程的環(huán)境的存儲(chǔ)單元的指針加載SS TC PTR寄存器18。然后調(diào)試器發(fā)布HALT命令,導(dǎo)致處理器將任何當(dāng)前正在運(yùn)行的線程的環(huán)境保存在當(dāng)前在寄存器122中的指針TC PTR所指示的存儲(chǔ)器地址中的。
      將寄存器122的內(nèi)容拷貝到寄存器18中(方便以后重新裝入剛才運(yùn)行的線程)并將寄存器18的內(nèi)容(指針SS TC PTR)拷貝到寄存器122中;將位于由指針SS TC PTR(現(xiàn)在在寄存器122中)標(biāo)識的存儲(chǔ)器地址處的被調(diào)試環(huán)境讀入環(huán)境寄存器組12中;復(fù)位RUNNING標(biāo)志;將剛才已停止的被調(diào)試線程的當(dāng)前環(huán)境保存在存儲(chǔ)器中;將寄存器18的內(nèi)容拷貝到寄存器122中,以便實(shí)現(xiàn)前面運(yùn)行的線程的重新裝入;將位于由寄存器122中的指針PC PTR標(biāo)識的存儲(chǔ)器地址處的線程環(huán)境讀入環(huán)境寄存器組12中。
      注意被調(diào)試的線程的保存的環(huán)境的RUNNING標(biāo)志是復(fù)位的。從而處理器繼續(xù)循環(huán)通過它正在處理的所有線程,但它每次到達(dá)被調(diào)試的線程的環(huán)境時(shí)它注意到狀態(tài)信息中的RUNNING標(biāo)志仍然是復(fù)位的而并不運(yùn)行該被調(diào)試的線程。
      單步調(diào)試器可選擇單步運(yùn)行停止的任何線程。為了做到這一點(diǎn),調(diào)試器將指令處理器用標(biāo)識保持被停止的被調(diào)試線程的環(huán)境的存儲(chǔ)單元的指針加載SS TC PTR寄存器18。然后調(diào)試器將讀取被調(diào)試線程的程序計(jì)數(shù)器來確定它是否被停止在斷點(diǎn)上。如果在斷點(diǎn)上,它便將被HALT操作碼替換的操作碼(如圖3D中的操作碼B)加載進(jìn)SS OPCODE寄存器17中并置位OPCODE IS VALID標(biāo)志。如果不在斷點(diǎn)上,則已復(fù)位OPCODE IS VALID標(biāo)志。
      這時(shí)調(diào)試器發(fā)布SINGLE-STEP命令,導(dǎo)致處理器將任何當(dāng)前正在運(yùn)行的線程的內(nèi)容保存在由當(dāng)前在寄存器122中的指針PC PTR所指示的存儲(chǔ)器地址中;將寄存器122的內(nèi)容拷貝到寄存器18中(以便以后裝入剛才運(yùn)行的線程)并將寄存器18的內(nèi)容(指針SS TC PTR)拷貝到寄存器122中;將位于由指針SS TC PTR(現(xiàn)在在寄存器122中)標(biāo)識的存儲(chǔ)器地址上的被調(diào)試環(huán)境讀入環(huán)境寄存器組12中,該內(nèi)容包含HALT操作碼所在的斷點(diǎn)的值PC;檢驗(yàn)OPCODE IS VALID標(biāo)志來確定要使用的操作碼的源,即如果該標(biāo)志是置位的則來自寄存器17,或如果該標(biāo)志是復(fù)位的則來自程序流;復(fù)位OPCODE IS VALID標(biāo)志以指示在寄存器17中無等待執(zhí)行的操作碼;增量寄存器121中的值PC(例如到圖3D中的參數(shù)B1的地址);如果有的話,讀取在增量后的值PC處的參數(shù)(如參數(shù)B1);根據(jù)需要重復(fù)最后兩步來讀取與從寄存器17讀取的操作碼關(guān)聯(lián)的任何附加參數(shù);執(zhí)行從剛才讀取的操作碼及任何與之關(guān)聯(lián)的參數(shù)構(gòu)成的完整指令,然后將值PC增量到下一個(gè)操作碼(如圖3E中的操作碼C);將剛才單步運(yùn)行的被調(diào)試的線程的當(dāng)前環(huán)境保存在存儲(chǔ)器中;將寄存器18的內(nèi)容拷貝到寄存器122中,以便實(shí)現(xiàn)前面運(yùn)行的線程的重新裝入;將位于由寄存器122中的指針TC PTR所標(biāo)識的存儲(chǔ)器地址上的線程環(huán)境讀入環(huán)境寄存器組12中。
      注意,所保存的環(huán)境中包含被調(diào)試線程中要執(zhí)行的下一條指令的值PC與仍然是復(fù)位的RUNNING標(biāo)志。從而處理器繼續(xù)循環(huán)通過它正在處理的所有線程,但每次到達(dá)被調(diào)試線程的環(huán)境時(shí),它注意到STATUS信息中的RUNNING標(biāo)志仍然是復(fù)位的而并不運(yùn)行被調(diào)試的線程。
      恢復(fù)運(yùn)行調(diào)試器可選擇恢復(fù)被停止的任何線程的運(yùn)行。為了做到這一點(diǎn),調(diào)試器將指令處理器用標(biāo)識保持停止的被調(diào)試線程的環(huán)境的存儲(chǔ)單元的指針加載SS TC PTR寄存器18。
      然后調(diào)試器讀取被調(diào)試線程的程序計(jì)數(shù)器以確定它是否停止在斷點(diǎn)上。
      如果是在斷點(diǎn)上,它便將已被HALT操作碼替換的操作碼(如圖3D中的操作碼B)加載到SS OPCODE寄存器17中并置位OPCODEISVALID標(biāo)志。
      然后調(diào)試器發(fā)布RESUME(恢復(fù))命令,導(dǎo)致處理器將任何當(dāng)前正在運(yùn)行的線程的環(huán)境保存在當(dāng)前在寄存器122中的指針PC PTR所指示的存儲(chǔ)器地址中;將寄存器122的內(nèi)容拷貝到寄存器18中(以便以后重新裝入剛才運(yùn)行的線程)并將寄存器18的內(nèi)容(指針SS TC PTR)拷貝到寄存器122中;將位于由指針SS TC PTR(現(xiàn)在在寄存器122中)標(biāo)識的存儲(chǔ)器地址上的被調(diào)試環(huán)境讀入環(huán)境寄存器組中,該環(huán)境中包含HALT操作碼所在的斷點(diǎn)的值PC;檢驗(yàn)OPCODE IS VALID標(biāo)志以確定要使用的操作碼的源,即,如果該標(biāo)志是置位的則來自寄存器17,或如果該標(biāo)志是復(fù)位的則來自程序流;復(fù)位OPCODE IS VALID標(biāo)志從指示寄存器17中無等待執(zhí)行的操作碼;增量寄存器121中的值PC(例如到圖3D中的參數(shù)B1的地址);讀取在增量后的值PC上的任何參數(shù)(如參數(shù)B1);根據(jù)需要重復(fù)最后兩步以讀取與讀自寄存器17的操作碼關(guān)聯(lián)的任何附加參數(shù);置位包含在寄存器123中的STATUS信息中的RUNNING標(biāo)志;執(zhí)行從剛才讀取的操作碼及與之關(guān)聯(lián)的任何參數(shù)構(gòu)成的完整指令,然后將值PC增量到下一個(gè)操作碼(如圖3E中的操作碼C);將被調(diào)試線程的當(dāng)前環(huán)境保存在存儲(chǔ)器中;將寄存器18的內(nèi)容拷貝到寄存器122中,以實(shí)現(xiàn)前面運(yùn)行的線程的重新裝入;
      將位于用寄存器122中的指針TC PTR標(biāo)識的存儲(chǔ)器地址上的線程環(huán)境讀入環(huán)境寄存器組12中。
      另一方面,如果不在斷點(diǎn)上,則已復(fù)位了OPCODE IS VALID標(biāo)志。然后調(diào)試器將發(fā)布RESUME命令而導(dǎo)致處理器將任何當(dāng)前正在運(yùn)行的線程的環(huán)境保存在當(dāng)前在寄存器122中的指針TC PTR指示的存儲(chǔ)器地址中;將寄存器122的內(nèi)容拷貝到寄存器18中(以便以后重新裝入剛才運(yùn)行的線程)并將寄存器18的內(nèi)容(指針SS TC PTR)拷貝到寄存器122中;將位于由指針SS TC PTR(現(xiàn)在在寄存器122中)所標(biāo)識的存儲(chǔ)器地址上的被調(diào)試環(huán)境讀入環(huán)境寄存器組中,該環(huán)境中包含線程中下一個(gè)操作碼的值PC;置位包含在寄存器123中的STATUS信息中的RUNNING標(biāo)志;將被調(diào)試線程的當(dāng)前環(huán)境保存在存儲(chǔ)器中;將寄存器18的內(nèi)容拷貝到寄存器122中,以實(shí)現(xiàn)前面運(yùn)行的線程的重新裝入;將位于由寄存器122中的指針TC PTR標(biāo)識的存儲(chǔ)器地址上的線程環(huán)境讀入環(huán)境寄存器組12中。
      注意,所保存的環(huán)境中包含被調(diào)試線程中要執(zhí)行的下一條指令的值PC及RUNNING標(biāo)志(現(xiàn)在是置位的)。從而處理器繼續(xù)循環(huán)通過它正在處理的所有線程,并且每次它到達(dá)被調(diào)試的線程的環(huán)境時(shí)它注意到STATUS信息中的RUNNING標(biāo)志是置位的而運(yùn)行被調(diào)試的線程。
      權(quán)利要求
      1.一種調(diào)試包括要由處理器(10)運(yùn)行的一序列指令的程序線程的方法,所述方法包括a.用斷點(diǎn)指示符(HALT)替換至少一條指令的選擇部分(操作碼B);b.在存儲(chǔ)器中保存該選擇部分(操作碼B);c.順序通過這些指令直到到達(dá)斷點(diǎn)指示符(HALT)為止;d.從存儲(chǔ)器中讀取該選擇部分(操作碼B)而不改寫斷點(diǎn)指示符(HALT);e.執(zhí)行多種預(yù)定的調(diào)試操作中至少一種。
      2.權(quán)利要求1中的方法,其中將選擇部分保存在預(yù)定的存儲(chǔ)器位置中并從其中讀取。
      3.權(quán)利要求1中的方法,其中該選擇部分包括操作碼。
      4.權(quán)利要求1中的方法,其中該選擇部分包括用于停止線程的運(yùn)行的HALT操作碼。
      5.權(quán)利要求1中的方法,其中這些預(yù)定的調(diào)試操作包含a.在斷點(diǎn)上停止程序線程的運(yùn)行;b.單步運(yùn)行停止的線程;c.恢復(fù)停止的線程的運(yùn)行。
      6.權(quán)利要求1中的方法,其中提供了標(biāo)志來指示是否已將選擇部分讀入專用存儲(chǔ)器中并正在等待利用。
      7.一種用于處理器能運(yùn)行的多個(gè)程序線程的選擇性調(diào)試的方法,所述方法包括a.在各所述線程的各自的環(huán)境中提供運(yùn)行狀態(tài)指示符;b.運(yùn)行其狀態(tài)指示符在第一狀態(tài)中的每個(gè)線程;c.不運(yùn)行其狀態(tài)指示符在第二狀態(tài)中的每個(gè)線程。
      8.權(quán)利要求7中的方法,其中調(diào)試器利用該運(yùn)行狀態(tài)指示符來選擇一個(gè)線程供調(diào)試,同時(shí)允許至少另一線程繼續(xù)運(yùn)行。
      全文摘要
      提供了用于調(diào)試器線程而不改寫該線程中替換該線程的斷點(diǎn)指示符的一種方法。到達(dá)該斷點(diǎn)后,將操作符讀入專用寄存器中供利用。還提供了方便線程的調(diào)試同時(shí)允許至少另一線程繼續(xù)運(yùn)行的一種方法。
      文檔編號G06F11/36GK1335962SQ00802558
      公開日2002年2月13日 申請日期2000年8月21日 優(yōu)先權(quán)日1999年9月7日
      發(fā)明者W·L·薩維勒, K·羅斯 申請人:皇家菲利浦電子有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1