两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

可插元件上的斷點(diǎn)調(diào)試的制作方法

文檔序號(hào):6421733閱讀:188來(lái)源:國(guó)知局
專利名稱:可插元件上的斷點(diǎn)調(diào)試的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及調(diào)試器,尤其是對(duì)象模型中可插拔元件的斷點(diǎn)調(diào)試。
發(fā)明的背景調(diào)試通常但不總是涉及調(diào)試器的使用,強(qiáng)大的工具可以允許編程者觀察程序運(yùn)行性能的,并確定語(yǔ)義錯(cuò)誤的所在位置。可以用特定調(diào)試特征組成語(yǔ)言及其相關(guān)庫(kù)。當(dāng)多數(shù)編程者通過增加調(diào)用輸出功能,從而試圖從它們的代碼中分離出問題的時(shí)候,首先進(jìn)行調(diào)試。這是非常合理的調(diào)試技術(shù),但是一旦定位和修改了問題,所有這些額外的功能調(diào)用必須從代碼中移動(dòng)??赡苁沁@樣的情況,增加新的代碼甚至是一個(gè)單獨(dú)的調(diào)用,這種添加改變了正在調(diào)試的代碼性能。
另一種可選的方法是使用調(diào)試器和讀取分析有問題和錯(cuò)誤代碼的計(jì)算應(yīng)用程序。在使用調(diào)試器的方法中,編程者能夠檢查程序中變量的內(nèi)容,而不用插入額外的調(diào)用來(lái)輸出這些值。另外,借助于調(diào)試器,可以在程序代碼中插入斷點(diǎn)在重要點(diǎn)停止執(zhí)行。當(dāng)程序中止時(shí)(處在中斷模式),使用調(diào)試設(shè)備(例如監(jiān)視窗口)來(lái)檢查局部變量和其它相關(guān)的數(shù)據(jù)。在中斷模式下不僅可以查看內(nèi)容,還可以更改和/或編輯內(nèi)容。
具體的說(shuō),斷點(diǎn)是一個(gè)通知調(diào)試器在某一點(diǎn)上臨時(shí)中止程序執(zhí)行的信號(hào)。當(dāng)執(zhí)行在斷點(diǎn)處中止時(shí),程序處于所述的中止模式。進(jìn)入中止方式并不是結(jié)束或者停止你的程序。任何時(shí)候可以恢復(fù)(繼續(xù))執(zhí)行。
中止方式可以認(rèn)為是在運(yùn)動(dòng)事件中的暫停。所有的選手還在場(chǎng)上(功能、變量、和對(duì)象駐留在存儲(chǔ)器中),但是他們的運(yùn)動(dòng)和活動(dòng)中止了。在暫停期間,裁判能夠檢查他們的位置和狀態(tài),來(lái)尋找違例情況(錯(cuò)誤)。裁判有權(quán)在暫停階段調(diào)整選手。在中斷方式下可以對(duì)程序進(jìn)行調(diào)整。例如,可以改變變量的值。另外,還可以移動(dòng)執(zhí)行的點(diǎn),改變執(zhí)行恢復(fù)時(shí)即將執(zhí)行的下一個(gè)語(yǔ)句。
斷點(diǎn)提供了一個(gè)強(qiáng)大的工具,使程序可以在任何希望的時(shí)間和地點(diǎn)中止執(zhí)行。而不是以一行一行地或者一條指令一條指令地單步調(diào)試代碼,可以設(shè)置程序運(yùn)行直到它遇到斷點(diǎn),然后開始調(diào)試。這樣大大加速了調(diào)試的進(jìn)程。如果不具備這種能力,實(shí)際上是不可能調(diào)試大型程序的。
許多程序語(yǔ)言具有中止執(zhí)行和將程序置于中斷方式的語(yǔ)句和結(jié)構(gòu)。例如Visual Basic具有停止(Stop)語(yǔ)句。由于斷點(diǎn)是添加到程序中的非實(shí)際的資源代碼,因此斷點(diǎn)不同于這些語(yǔ)句。斷點(diǎn)語(yǔ)句沒有被輸入到資源窗口中,更確切的說(shuō),它要求通過一些通用調(diào)試接口和調(diào)試器,依次來(lái)設(shè)置斷點(diǎn)。
在具有可插拔部件(例如數(shù)據(jù)傳輸系統(tǒng)(DTS))的計(jì)算環(huán)境的運(yùn)行時(shí)間環(huán)境中,調(diào)試變得更加復(fù)雜。(特別是,由于運(yùn)行期間沒有部件的資源代碼來(lái)在此運(yùn)行,具有可插拔部件的運(yùn)行時(shí)間是一個(gè)獨(dú)立的調(diào)試問題,調(diào)試是困難的。)而且,大多數(shù)運(yùn)行時(shí)間信息包(例如DTS信息包)的執(zhí)行是在運(yùn)行時(shí)間之外產(chǎn)生。另外,任務(wù)對(duì)本身的執(zhí)行進(jìn)行控制,意即任務(wù)暫停時(shí)他們對(duì)任務(wù)自身進(jìn)行控制(例如為了進(jìn)行調(diào)試)。運(yùn)行時(shí)間暫停一個(gè)特殊的任務(wù),運(yùn)行時(shí)間(具有數(shù)據(jù)文件的計(jì)算應(yīng)用程序,用來(lái)顯示或運(yùn)行數(shù)據(jù)文件)需要和特殊的任務(wù)一起協(xié)同操作?,F(xiàn)行辦法提出了在運(yùn)行時(shí)間的調(diào)試,但由于沒有提出運(yùn)行時(shí)間和任務(wù)之間的協(xié)同工作因而不能處理運(yùn)行期間可插拔部件的調(diào)試。簡(jiǎn)而言之,運(yùn)行時(shí)間對(duì)可插拔的部件進(jìn)行了低效率的控制。
綜上所述,有必要存在一個(gè)系統(tǒng)和方法來(lái)克服現(xiàn)有技術(shù)的不足。
發(fā)明概述提供了一種可插拔部件斷點(diǎn)的調(diào)試。在一個(gè)具有擴(kuò)展的可插拔部件的計(jì)算環(huán)境中,提供一種系統(tǒng)和方法在部件運(yùn)行期間(例如執(zhí)行)在不同的點(diǎn)設(shè)置斷點(diǎn),以便可以發(fā)現(xiàn)、跟蹤、和解決錯(cuò)誤。在一個(gè)示出的實(shí)施例中,計(jì)算環(huán)境包括了客戶端、運(yùn)行時(shí)間和任務(wù)。操作中客戶端創(chuàng)建執(zhí)行或者將信息包加載到運(yùn)行時(shí)間。運(yùn)行時(shí)間創(chuàng)建任務(wù)并將任務(wù)配置成能夠創(chuàng)建斷點(diǎn)。任務(wù)然后創(chuàng)建斷點(diǎn)并將斷點(diǎn)信息傳輸給運(yùn)行時(shí)間。然后客戶端通過計(jì)數(shù)斷點(diǎn)集合來(lái)啟動(dòng)斷點(diǎn)。當(dāng)任務(wù)遇到斷點(diǎn)時(shí),任務(wù)停止執(zhí)行,提供運(yùn)行時(shí)間的控制。運(yùn)行時(shí)間讓斷點(diǎn)來(lái)調(diào)用客戶端。運(yùn)行時(shí)間也可以在支持這種操作的所有任務(wù)上進(jìn)行中止調(diào)用。直到滿意為止,客戶端然后通過和運(yùn)行時(shí)間的通信來(lái)恢復(fù)信息包,依次觸發(fā)所有任務(wù)的恢復(fù)。
下面將描述本發(fā)明的其它方面。
附圖簡(jiǎn)述參考如下附圖進(jìn)一步描述可插拔元件的斷點(diǎn)調(diào)試系統(tǒng)和方法


圖1和2是適用于本發(fā)明計(jì)算環(huán)境的示意圖,附圖2是網(wǎng)絡(luò)計(jì)算環(huán)境的示意圖;附圖3是在可插拔元件斷點(diǎn)執(zhí)行時(shí)執(zhí)行的處理的方框圖;附圖4是根據(jù)所述系統(tǒng)和方法中的調(diào)試斷點(diǎn)執(zhí)行時(shí)的處理流程圖。
說(shuō)明性實(shí)施例的詳細(xì)描述概述軟件調(diào)試是一個(gè)開發(fā)者試圖排除計(jì)算機(jī)程序中代碼缺陷的過程。軟件開發(fā)調(diào)試階段通常占整個(gè)開發(fā)時(shí)間的60-70%。實(shí)際上,調(diào)試擔(dān)負(fù)著軟件項(xiàng)目總量的約80%左右?;旧希浖{(diào)試的關(guān)鍵過程中圍繞著大量的困難和不確定性。這是因?yàn)椋阱e(cuò)誤檢測(cè)過程的每一個(gè)階段很難確定多長(zhǎng)時(shí)間能夠發(fā)現(xiàn)和改正錯(cuò)誤,更不用說(shuō)是否已經(jīng)正確修改了缺陷。為了刪除軟件中的錯(cuò)誤,開發(fā)者首先必須發(fā)現(xiàn)存在的問題,然后將錯(cuò)誤分類,找出問題所在的代碼,最后創(chuàng)建補(bǔ)救這種形勢(shì)的方案(不會(huì)引起其它問題)。有些問題是難以捉摸的,以至編程者可能花費(fèi)幾個(gè)月,或者在極端情況下,甚至幾年去發(fā)現(xiàn)它們。開發(fā)者不斷地在尋找改善和合理化軟件調(diào)試過程的方法。與此同時(shí),他們已經(jīng)試圖在錯(cuò)誤檢測(cè)中使用自動(dòng)化技術(shù)。
這些年來(lái),調(diào)試技術(shù)有了實(shí)質(zhì)性的改善,并且在不久的將來(lái)它將繼續(xù)有重大的發(fā)展。
調(diào)試技術(shù)的研究呈現(xiàn)了重要性的趨勢(shì)。大多數(shù)調(diào)試的改進(jìn)集中在減少依賴的人力和相互作用。調(diào)試技術(shù)的發(fā)展經(jīng)歷了幾個(gè)階段。在計(jì)算機(jī)剛剛開始的年代,編程者難于使計(jì)算機(jī)產(chǎn)生他們運(yùn)行的程序的輸出結(jié)果。編程者被迫發(fā)明了不同的方法來(lái)獲得他們使用程序的信息。他們不僅要確定錯(cuò)誤,而且必須創(chuàng)建工具來(lái)發(fā)現(xiàn)錯(cuò)誤。在早期得的調(diào)試技術(shù)中使用了例如顯示器和程序控制燈泡。
最后編程者開始在他們的程序中輸入打印指令來(lái)檢測(cè)錯(cuò)誤。通過這樣做,編程者能夠跟蹤程序路徑和關(guān)鍵變量的值。打印語(yǔ)句的使用免去了編程者創(chuàng)建他們自己調(diào)試工具任務(wù)的時(shí)間浪費(fèi)。這種技術(shù)仍然在普遍使用,非常適合某種類型的問題。
盡管打印語(yǔ)句是調(diào)試技術(shù)中的一個(gè)改善,但他們?nèi)匀恍枰幊陶呦喈?dāng)多的時(shí)間和工作。編程者需要的是一個(gè)一次執(zhí)行一條程序指令的工具,然后打印程序中的任何變量。這將使編程者免于提前決定打印語(yǔ)句所放的位置,因?yàn)檫@是他在單步調(diào)試程序中應(yīng)當(dāng)做的。這樣就產(chǎn)生了運(yùn)行時(shí)間調(diào)試器。原則上,運(yùn)行時(shí)間調(diào)試器僅僅是一個(gè)自動(dòng)化的打印語(yǔ)句。它允許編程者不必在代碼中插入打印語(yǔ)句就能跟蹤程序路徑和變量。
如今,市場(chǎng)上的每一個(gè)編譯器事實(shí)上都帶有運(yùn)行時(shí)間調(diào)試器。在程序編譯期間,這種調(diào)試器作為通過編譯的切換開關(guān)。經(jīng)常,這種切換開關(guān)稱為“-g”切換開關(guān)。這種開關(guān)告訴編譯器使足夠的信息成為可執(zhí)行的部分,以使其能夠在運(yùn)行時(shí)間在調(diào)試器中運(yùn)行。運(yùn)行時(shí)間調(diào)試器相對(duì)于打印語(yǔ)句來(lái)說(shuō)是一個(gè)巨大的進(jìn)步,這是因?yàn)樗试S編程者編譯和運(yùn)行單個(gè)的編譯程序,而不是修改資源和重編譯,以盡量減少錯(cuò)誤。運(yùn)行時(shí)間調(diào)試器使得檢測(cè)程序中的錯(cuò)誤變得很容易,但是他們不能發(fā)現(xiàn)導(dǎo)致錯(cuò)誤的原因。編程者需要一個(gè)更好的工具來(lái)定位和糾正軟件錯(cuò)誤。
軟件開發(fā)商發(fā)現(xiàn)有些經(jīng)典的錯(cuò)誤,例如存儲(chǔ)器誤用和存儲(chǔ)器漏洞可以自動(dòng)檢測(cè)出來(lái)。這是調(diào)試技術(shù)前進(jìn)的一步,這是因?yàn)樗拱l(fā)現(xiàn)錯(cuò)誤的過程自動(dòng)化。這種工具通知開發(fā)者錯(cuò)誤,他的任務(wù)僅僅是來(lái)改正它。自動(dòng)調(diào)試器變得多樣化。最簡(jiǎn)單的一種就是能夠連接到一個(gè)程序的庫(kù)功能。當(dāng)程序執(zhí)行并調(diào)用這些功能時(shí),調(diào)試器檢查存儲(chǔ)器誤用。如果發(fā)現(xiàn)這種情況,調(diào)試器就報(bào)告。這種工具的弱點(diǎn)就是不能檢測(cè)這種存儲(chǔ)器誤用確切產(chǎn)生的程序點(diǎn)的位置。這是因?yàn)檎{(diào)試器不能觀察程序運(yùn)行的每一條指令,僅僅能夠檢測(cè)少量的錯(cuò)誤。
下一代運(yùn)行時(shí)間調(diào)試器技術(shù)基于OCI技術(shù)。這些工具讀取編譯器產(chǎn)生的對(duì)象代碼,在程序連接之前他們被裝備。這些工具的基本原則是尋找訪問存儲(chǔ)器的處理器指令。在對(duì)象代碼中,修改任何訪問處理器的指令來(lái)檢查誤用情況。這些工具比基于庫(kù)技術(shù)的工具更加有用,但是他們?nèi)匀皇遣煌昝赖?。由于這些工具由存儲(chǔ)器指令觸發(fā),他們僅僅能夠檢測(cè)出與處理器有關(guān)的錯(cuò)誤。這些工具能夠檢測(cè)動(dòng)態(tài)存儲(chǔ)器中的錯(cuò)誤,但是他們?cè)诙褩z測(cè)方面的能力是有限的,他們不能在靜態(tài)存儲(chǔ)器中工作。由于OCI技術(shù)的弱點(diǎn),他們不能檢測(cè)其它任何類型的錯(cuò)誤。在對(duì)象標(biāo)準(zhǔn)中,關(guān)于源代碼大量重要的信息永久性丟失,他們不能用于幫助確定錯(cuò)誤。這些工具的另外一個(gè)缺點(diǎn)是當(dāng)處理器產(chǎn)生漏洞時(shí)不能進(jìn)行檢測(cè)。不能區(qū)分點(diǎn)和整體,這導(dǎo)致了漏洞的不可檢測(cè)。
第三代運(yùn)行時(shí)間調(diào)試器基于SCI技術(shù)。工具讀取程序源代碼,分析,測(cè)試,結(jié)果將每一條程序指令插入到工具指令中。由于工具讀取源代碼,它就能夠發(fā)現(xiàn)和存儲(chǔ)器有關(guān)的錯(cuò)誤和其它大的錯(cuò)誤類。而且,這種工具能夠檢測(cè)出所有存儲(chǔ)段中的存儲(chǔ)器誤用錯(cuò)誤,包括堆,靜態(tài)和動(dòng)態(tài)的存儲(chǔ)器。這種工具最大的優(yōu)點(diǎn)是它能夠跟蹤程序內(nèi)的指針,能夠跟蹤漏洞產(chǎn)生的點(diǎn)。另外,為了發(fā)現(xiàn)存儲(chǔ)器錯(cuò)誤,這些工具能夠檢測(cè)語(yǔ)言特定錯(cuò)誤和算術(shù)錯(cuò)誤。這些工具將是下一步技術(shù)發(fā)展的基礎(chǔ)。
所有現(xiàn)有的工具都有一個(gè)共同的缺點(diǎn)。在程序編譯后,他們?nèi)匀恍枰幊陶呓?jīng)歷尋找運(yùn)行時(shí)間錯(cuò)誤的額外步驟。在某種意義上,自從調(diào)試的“石器時(shí)代”以來(lái),就沒有怎么改變過這種處理。首先,寫入代碼,然后檢查代碼的錯(cuò)誤。在一個(gè)更高級(jí)別中仍然存在這兩種階段的處理過程。這種過程需要整合成一個(gè)階段。
斷點(diǎn)允許執(zhí)行的臨時(shí)停止以用于調(diào)試目的。典型的軟件開發(fā)環(huán)境提供了,暫停一個(gè)正在運(yùn)行的應(yīng)用程序的線程,和基于不同的階段決定應(yīng)用程序的源代碼在哪里停止,就這兩種斷點(diǎn)行為。運(yùn)行時(shí)間不能這樣做由三點(diǎn)原因1)任務(wù)是組成部分,因此一旦執(zhí)行中止就沒有可以參考的源代碼。2)大多數(shù)DTS信息包的執(zhí)行發(fā)生在運(yùn)行時(shí)間的控制之外。任務(wù)能夠控制他們自己的執(zhí)行。為了停止他們,DTS運(yùn)行時(shí)間需要暫停任務(wù)上運(yùn)行的線程。3)在任何時(shí)間,任務(wù)可能是一個(gè)不允許臨時(shí)暫停的敏感狀態(tài)。
這里所述的系統(tǒng)和方法的目的是改善現(xiàn)有技術(shù)的缺點(diǎn),提供了一種機(jī)制,當(dāng)任務(wù)告知運(yùn)行時(shí)間遇到斷點(diǎn)時(shí),通過揭露斷點(diǎn)和正確的響應(yīng),允許任務(wù)和運(yùn)行時(shí)間協(xié)同工作,并且允許可插拔部件在示例期間的任何時(shí)候創(chuàng)建斷點(diǎn)。換句話說(shuō),調(diào)試器借助可擴(kuò)展部件的工作來(lái)設(shè)置用于運(yùn)行時(shí)間跟蹤和解決問題的斷點(diǎn)。
可以理解的是雖然這里所述的系統(tǒng)和方法是在可插拔部件的調(diào)試環(huán)境中描述的,但調(diào)試技術(shù)可以使用超出本發(fā)明提供的實(shí)施例范圍之內(nèi)的不同方式。
A.示例的計(jì)算環(huán)境附圖1示出能夠在本發(fā)明中實(shí)施的適當(dāng)?shù)挠?jì)算系統(tǒng)環(huán)境100的一個(gè)例子。計(jì)算系統(tǒng)環(huán)境100僅僅是適合計(jì)算環(huán)境的一個(gè)例子,并沒有暗示對(duì)本發(fā)明的使用范圍和功能進(jìn)行任何限制。計(jì)算環(huán)境100不與示例的操作環(huán)境100中的任何一個(gè)部件或者是它們的組合有依賴性或者必然聯(lián)系。
本發(fā)明可供很多其它一般用途或者特殊用途的計(jì)算系統(tǒng)環(huán)境或結(jié)構(gòu)一起使用。本發(fā)明也包括但不限于使用合適的公知計(jì)算系統(tǒng)、環(huán)境和/或結(jié)構(gòu),上述系統(tǒng)或設(shè)備也包括任何個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī),手持式或者膝上型設(shè)備、多處理器系統(tǒng)、微處理器系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子、網(wǎng)絡(luò)PC機(jī)、微型計(jì)算機(jī)、大型計(jì)算機(jī)、分布式計(jì)算機(jī)環(huán)境,或者類似設(shè)備。
本發(fā)明可以用一般的計(jì)算機(jī)可執(zhí)行的指令環(huán)境來(lái)描述,例如計(jì)算機(jī)執(zhí)行的程序模塊。程序模塊一般包括執(zhí)行特殊任務(wù)或者實(shí)行特殊抽象數(shù)據(jù)類型的例程、程序、對(duì)象、成員和數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)施,該環(huán)境中通過通信網(wǎng)絡(luò)或者是其它數(shù)據(jù)傳輸媒體連接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊和其它數(shù)據(jù)既可以在包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地計(jì)算機(jī)存儲(chǔ)媒體中,也可以在包括存儲(chǔ)器存儲(chǔ)設(shè)備的遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)媒體中。
參考附圖1,實(shí)施本發(fā)明的典型系統(tǒng)包括由計(jì)算機(jī)110組成的一般用途的計(jì)算設(shè)備。計(jì)算機(jī)110的組成部分包括但不局限于處理單元120、系統(tǒng)存儲(chǔ)器130和連接不同部件的系統(tǒng)總線121,包括系統(tǒng)存儲(chǔ)器和處理單元120的連接。系統(tǒng)總線121可以是幾種類型總線結(jié)構(gòu)的任何類型,包括存儲(chǔ)器總線或者存儲(chǔ)控制器、外圍總線和使用任何多種總線結(jié)構(gòu)的本地總線。作為實(shí)施例但不局限于此,這樣的結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、微通道結(jié)構(gòu)(MCA)總線、加強(qiáng)的ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)本地總線和外圍部件接口(PCI)總線(也可以是公知的Mezzanine總線)。
計(jì)算機(jī)110典型地包括大量的計(jì)算機(jī)可讀媒體。計(jì)算機(jī)可讀媒體可以是計(jì)算機(jī)110可以訪問的任何有效的媒體,包括易失的和非易失的媒體、可移動(dòng)的和非可移動(dòng)動(dòng)的媒體。作為實(shí)施例但不局限于此,計(jì)算機(jī)可讀媒體可以包括計(jì)算機(jī)存儲(chǔ)媒體和通信媒體。計(jì)算機(jī)存儲(chǔ)媒體既包括易失的也包括非易失的,既包括可移動(dòng)也包括非可移動(dòng)的媒體,實(shí)現(xiàn)任何信息存儲(chǔ)的方法和技術(shù),例如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其它數(shù)據(jù)。計(jì)算機(jī)存儲(chǔ)媒體但不局限于包括RAM,ROM,EEPROM,閃存或者其它存儲(chǔ)技術(shù),CD-ROM,數(shù)字化視頻光盤(DVD)或者其它光磁盤媒體,磁帶盒,磁帶,磁盤存儲(chǔ)器或者其它磁存儲(chǔ)設(shè)備,或者是能夠存儲(chǔ)所需信息并且計(jì)算機(jī)110能夠訪問的其它媒體。通信媒體典型地包括計(jì)算機(jī)可讀指令,數(shù)據(jù)結(jié)構(gòu),程序模塊或者以一種例如載波或其它傳輸機(jī)制的模塊化數(shù)據(jù)信號(hào)的形式存在的其它數(shù)據(jù),并且包括任何信息傳輸媒體。術(shù)語(yǔ)“模塊化數(shù)據(jù)信號(hào)”意指一種具有一個(gè)或多個(gè)字符集的信號(hào)或以此來(lái)改變信號(hào)中的信息編碼的信號(hào)。作為實(shí)施例但不局限于此,通信媒體包括例如有線網(wǎng)絡(luò)或直接線性連接的有線媒體,例如聲學(xué)、RF、紅外線的無(wú)線媒體和其它無(wú)線媒體。計(jì)算機(jī)可讀媒體的范圍也包括上述任何媒體的組合。
系統(tǒng)存儲(chǔ)器130包括例如是ROM131和RAM132的易失性的和/或非易失性的存儲(chǔ)器組成的計(jì)算機(jī)存儲(chǔ)媒體。ROM131典型地存儲(chǔ)有包含在啟動(dòng)期間幫助計(jì)算機(jī)110內(nèi)組成部分傳輸信息基本例程的基本輸入輸出系統(tǒng)133(BIOS)。RAM132典型地包括能立即被訪問和/或處理單元120操作的數(shù)據(jù)和/或程序模塊。作為實(shí)施例但不局限于此,附圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可以包括其它可移動(dòng)/非可移動(dòng),易失/非易失地計(jì)算機(jī)存儲(chǔ)媒體。僅僅作為一個(gè)實(shí)施例,附圖1示出了一個(gè)從/向非可移動(dòng)、非易失的磁媒體讀取/寫入的硬盤驅(qū)動(dòng)器140,一個(gè)從/向可移動(dòng)、非易失的磁盤152讀取/寫入的磁盤驅(qū)動(dòng)器151,和一個(gè)從/向非可移動(dòng)、非易失的光盤156讀取/寫入的光盤驅(qū)動(dòng)器155,例如CD-ROM或其它光媒體。典型的操作環(huán)境中也可以使用其它的可移動(dòng)的/非可移動(dòng)的、易失的/非易失的計(jì)算機(jī)存儲(chǔ)媒體,包括但不限于磁帶盒,閃速存儲(chǔ)器卡,數(shù)字光盤,數(shù)字視頻磁帶,固態(tài)ROM以及類似媒體。典型的,通過例如是接口140的非可移動(dòng)存儲(chǔ)器接口,硬盤驅(qū)動(dòng)器141與系統(tǒng)總線121連接,通過例如接口150的可移動(dòng)存儲(chǔ)器接口磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155與系統(tǒng)總線連接。
如上所討論和附圖1所示例的驅(qū)動(dòng)器和其它相關(guān)的計(jì)算機(jī)存儲(chǔ)媒體為計(jì)算機(jī)提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。在附圖1中,例如,硬盤驅(qū)動(dòng)器作為存儲(chǔ)操作系統(tǒng)144,應(yīng)用程序145,其它程序模塊146和程序數(shù)據(jù)147被示出。需要注意的是,這些組件既可以相同于、也可以不同于操作系統(tǒng)134,應(yīng)用程序135,其它程序模塊136和程序數(shù)據(jù)137。這里操作系統(tǒng)144,應(yīng)用程序145,其它程序模塊146和程序數(shù)據(jù)147以不同的數(shù)字表示在最小值方面是不同的副本。用戶通過輸入設(shè)備、例如是鍵盤162和指示裝置161、一般指鼠標(biāo)、跟蹤球或觸摸墊來(lái)向計(jì)算機(jī)輸入命令和信息。其它的輸入設(shè)備(未示出)也可以包括麥克風(fēng),操縱桿,游戲墊、圓盤式衛(wèi)星電視天線、掃描儀或者類似設(shè)備。這些和其它輸入設(shè)備經(jīng)常是通過耦合到系統(tǒng)總線的用戶輸入接口160和處理單元120相連接,但是也可以是通過其它的接口和總線結(jié)構(gòu)連接,例如并行端口、游戲端口或者是通用串行總線(USB)。顯示器191或者其它類型的顯示設(shè)備也是通過接口和系統(tǒng)總線連接的,例如視頻接口190。除了顯示器,計(jì)算機(jī)也可以包括其它外圍輸出設(shè)備,例如通過輸出外圍接口195連接的揚(yáng)聲器197和打印機(jī)196。
計(jì)算機(jī)110使用和一個(gè)或者多個(gè)遠(yuǎn)程計(jì)算機(jī)、例如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接可以在網(wǎng)絡(luò)環(huán)境中運(yùn)行。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī),服務(wù)器,路由器,網(wǎng)絡(luò)PC,對(duì)等設(shè)備或其它一般的網(wǎng)絡(luò)節(jié)點(diǎn),盡管附圖1僅僅示例了存儲(chǔ)器設(shè)備181,但是典型的,遠(yuǎn)程計(jì)算機(jī)181還包括如上所述與計(jì)算機(jī)110有關(guān)的許多或者全部元件。所述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但是也可以包括其它的網(wǎng)絡(luò)。將象企業(yè)域的計(jì)算機(jī)網(wǎng)絡(luò),企業(yè)內(nèi)部局域網(wǎng)和互聯(lián)網(wǎng)這樣的網(wǎng)絡(luò)環(huán)境應(yīng)用在在辦公室中是很普通的現(xiàn)象。
當(dāng)在局域網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或者適配器170和局域網(wǎng)171連接。當(dāng)在廣域網(wǎng)中使用時(shí),計(jì)算機(jī)110一般包括調(diào)試解調(diào)器172或者在廣域網(wǎng)173中建立通信的其它裝置,例如互聯(lián)網(wǎng)。內(nèi)部或者外部的調(diào)制調(diào)節(jié)器172通過用戶輸入接口160、或者其它適當(dāng)?shù)臋C(jī)制與系統(tǒng)總線121相連。在網(wǎng)絡(luò)環(huán)境中,所述與計(jì)算機(jī)110有關(guān)的程序模塊或部分可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)存儲(chǔ)器設(shè)備中。作為一個(gè)實(shí)施例但不限于此,附圖1例示了位于存儲(chǔ)設(shè)備181上的遠(yuǎn)程應(yīng)用程序185??梢岳斫獾氖鞘境龅木W(wǎng)絡(luò)連接是示范性的,可以使用在計(jì)算機(jī)間建立通信的其它裝置。
B.網(wǎng)絡(luò)計(jì)算環(huán)境實(shí)施例如上所述的計(jì)算機(jī)環(huán)境100可用于計(jì)算機(jī)網(wǎng)絡(luò)的一部分。通常,上述的計(jì)算機(jī)既可以用于網(wǎng)絡(luò)環(huán)境中的服務(wù)器計(jì)算機(jī),也可以用于客戶端服務(wù)器。附圖2示出了網(wǎng)絡(luò)環(huán)境的一個(gè)實(shí)施例,具有本發(fā)明使用的由網(wǎng)絡(luò)和客戶端計(jì)算機(jī)通信的服務(wù)器。如附圖2所示,大量的服務(wù)器10a,10b等等由通信網(wǎng)絡(luò)14(可以是LAN,WAN,企業(yè)內(nèi)部局域網(wǎng),互聯(lián)網(wǎng),或其它計(jì)算機(jī)網(wǎng)絡(luò))和大量的客戶端計(jì)算機(jī)20a,20b,20c或者例如是移動(dòng)電話15,陸地有線電話16和個(gè)人數(shù)字助理機(jī)17的計(jì)算設(shè)備相連接。例如,在通信網(wǎng)絡(luò)160是互聯(lián)網(wǎng)的網(wǎng)絡(luò)環(huán)境中,服務(wù)器10可以是萬(wàn)維網(wǎng)服務(wù)器,客戶端20通過大量公知的協(xié)議中的任何一種和服務(wù)器通信,例如超文本傳輸協(xié)議(HTTP)或無(wú)線應(yīng)用協(xié)議(WAP)。每一個(gè)客戶計(jì)算機(jī)20可以配備訪問服務(wù)器10的瀏覽器180a。類似的,個(gè)人數(shù)字助理機(jī)17可以配備瀏覽器180b,移動(dòng)電話15可以配備瀏覽器180c來(lái)顯示和接收不同的數(shù)據(jù)。
在操作中,一個(gè)用戶(未示出)可以和運(yùn)行在客戶端計(jì)算設(shè)備上的計(jì)算應(yīng)用程序交互作用,進(jìn)行可插拔部件中的斷點(diǎn)調(diào)試。調(diào)試功能可以存儲(chǔ)在服務(wù)器計(jì)算機(jī)中,由通信網(wǎng)絡(luò)14和客戶端的協(xié)作用戶進(jìn)行通信。用戶可以結(jié)合客戶端計(jì)算設(shè)備上的計(jì)算應(yīng)用程序進(jìn)行調(diào)試??蛻舳擞?jì)算設(shè)備將這些事務(wù)處理傳給服務(wù)器計(jì)算機(jī)以進(jìn)行處理和存儲(chǔ)。服務(wù)器計(jì)算機(jī)可以作為主計(jì)算應(yīng)用程序進(jìn)行可插拔部件的調(diào)試。
因此,本發(fā)明可以使用在具有訪問網(wǎng)絡(luò)及與網(wǎng)絡(luò)相互作用的客戶端計(jì)算設(shè)備以及和客戶端交互作用的服務(wù)器計(jì)算機(jī)的計(jì)算機(jī)環(huán)境中。然而,在此所述的系統(tǒng)和方法可以用多種基于網(wǎng)絡(luò)的結(jié)構(gòu)來(lái)實(shí)施,不僅限于給出的實(shí)施例。現(xiàn)在參考示出的實(shí)施例將詳細(xì)描述所述的系統(tǒng)和方法。
C.斷點(diǎn)調(diào)試在DTS(數(shù)據(jù)傳輸系統(tǒng))中調(diào)試的概念在表面上和在其它的環(huán)境中是類似的。需要停止信息包的執(zhí)行,檢查和改變變量,并繼續(xù)執(zhí)行,這樣才能寫入數(shù)據(jù)包。編程者通過觀察控制執(zhí)行斷點(diǎn)、檢查和修改變量。DTS的不同點(diǎn)是多數(shù)執(zhí)行發(fā)生在運(yùn)行時(shí)間的控制以外的信息包中。DTS只訪問或者控制調(diào)用接口方法和例如中止任務(wù)線程之間的任務(wù)。期望在斷點(diǎn)處設(shè)置良好的控制。因此,對(duì)象模型為任務(wù)優(yōu)選的提供了一種方法來(lái)描述他們?cè)试S的變量、事件和方法作為斷點(diǎn)目標(biāo)。在接口的定義中,一般的術(shù)語(yǔ)“對(duì)象”用來(lái)描述實(shí)施調(diào)試接口的實(shí)體。將這些接口應(yīng)用于希望在揭露調(diào)試和功能性斷點(diǎn)的對(duì)象模型中的任務(wù)和對(duì)象是明智的。
在一個(gè)典型的實(shí)施例中,用戶創(chuàng)建具有任務(wù)的信息包。運(yùn)行期間出現(xiàn)了問題,編程者想弄明白任務(wù)為什么沒有按照他所想的方式去工作。在將三行集合成一行轉(zhuǎn)換的任務(wù)上設(shè)置斷點(diǎn)。通過使用協(xié)作用戶接口,編程者能夠查看轉(zhuǎn)換揭示的屬性和變量。通過查看被轉(zhuǎn)換的行和中間執(zhí)行的轉(zhuǎn)換結(jié)果,可以推斷出集合體的邏輯缺陷。
在第二個(gè)示出的實(shí)施例中,編程者具有循環(huán)執(zhí)行的兩個(gè)任務(wù)的信息包。第一個(gè)任務(wù)設(shè)置了第二個(gè)任務(wù)使用的全局變量。由于某方面的原因在僅僅執(zhí)行了部分循環(huán)是時(shí)第二任務(wù)失敗。編程者猜想這是由于全局變量設(shè)置成了一個(gè)無(wú)效值,于是當(dāng)編程者反復(fù)猜想和檢查全局變量時(shí),在循環(huán)處設(shè)置斷點(diǎn)。編程者反復(fù)采取措施,直到她發(fā)現(xiàn)可疑的全局變量的值的。在發(fā)現(xiàn)可疑的值后,編程者一步一步循環(huán)查看第二個(gè)任務(wù)的失敗。
一般的,設(shè)計(jì)斷點(diǎn)的目的是任務(wù)不能面對(duì)在實(shí)施和使用中的挑戰(zhàn)。運(yùn)行時(shí)間保持了任務(wù)揭示的斷點(diǎn)和客戶端是否能夠使能信息,致使任務(wù)寫入幾乎不能工作。在運(yùn)行期間保持?jǐn)帱c(diǎn)的狀態(tài)提供了公知的優(yōu)點(diǎn),即可以正確執(zhí)行。
為了揭示斷點(diǎn),結(jié)合示出的典型實(shí)施例,任務(wù)最好實(shí)施IDTS斷點(diǎn)站斷點(diǎn)。這種接口來(lái)源于IDTS中止。當(dāng)?shù)谝淮蝿?chuàng)建任務(wù)時(shí),運(yùn)行時(shí)間將會(huì)調(diào)用IDTS斷點(diǎn)站。任務(wù)的接收斷點(diǎn)管理通過斷點(diǎn)管理的使任務(wù)能夠通知它希望揭示的斷點(diǎn)運(yùn)行時(shí)間,檢驗(yàn)客戶是否已經(jīng)使能這些斷點(diǎn)。典型的,調(diào)用接收斷點(diǎn)管理時(shí),任務(wù)將會(huì)創(chuàng)建大量的斷點(diǎn),然后執(zhí)行時(shí)調(diào)用幾次斷點(diǎn)是否使能。
每一個(gè)斷點(diǎn)由任務(wù)定義和任務(wù)范圍的ID所標(biāo)識(shí)。揭示斷點(diǎn)的例子如下<pre listing-type="program-listing">  AcceptBreakpointManager(IDTSBreakpointManager*pManager)  {  m_pManager=pManager;  m_pManager->CreateBreakpoint(1,“Break when the task is about to do X”,&lt;br/&gt;NULL);  }  Execute(…)  {VARIANT-BOOL isEnabled;  m_pManager->IsBreakpointEnabled(1,&amp;amp;isEnabled);  }</pre>斷點(diǎn)管理器支持更多復(fù)雜的情況,例如執(zhí)行時(shí)創(chuàng)建和刪除斷點(diǎn)。而且,客戶端可以檢索信息包中揭露的所有斷點(diǎn)列表,或者僅僅通過調(diào)用IDTS信息包上的GetBreakpoint( )進(jìn)行特定的執(zhí)行。集合中的每一個(gè)斷點(diǎn)對(duì)象包括了斷點(diǎn)的描述和使能標(biāo)志,當(dāng)設(shè)置時(shí)能夠?qū)е略趫?zhí)行點(diǎn)停止任務(wù)。
附圖3示出了在計(jì)算環(huán)境中具有擴(kuò)展部件并且可以和計(jì)算環(huán)境通信,以實(shí)現(xiàn)斷點(diǎn)調(diào)試的示例的方塊圖。微軟公司支持的DTS就是這樣的計(jì)算環(huán)境的一個(gè)例子。
許多公司需要集中數(shù)據(jù)來(lái)改善共同的決策。然而,他們的數(shù)據(jù)可能以不同的格式存在不同的地方。數(shù)據(jù)傳輸系統(tǒng)(DTS)闡明了這個(gè)重大的事宜,需要提供一組工具以允許將不同資源的數(shù)據(jù)提取、轉(zhuǎn)換和合并成單個(gè)的或者多個(gè)DTS連接支持的目的地址。通過使用DTS工具以圖形化的方式建立DTS信息包或者用DTS對(duì)象模型來(lái)編程信息包,可以創(chuàng)建自定義的、編制用來(lái)專用于組織結(jié)構(gòu)的商業(yè)需要的數(shù)據(jù)移動(dòng)解決方案。
DTS信息包是一個(gè)有組織連接、DTS任務(wù)、DTS轉(zhuǎn)換和工作流程限制集合的集合體,可以與DTS工具匯編或者編程,并且保存到MICROSOFT SQLSERVER,SQL SERVER 2000中的數(shù)據(jù)服務(wù)器,結(jié)構(gòu)化存儲(chǔ)文件,或者是MICROSOFT Visual Basic文件。一般地,在運(yùn)行時(shí)每一個(gè)信息包包括一個(gè)或者多個(gè)順序或者是并行執(zhí)行的步驟。當(dāng)執(zhí)行時(shí),信息包連接到正確的數(shù)據(jù)源,復(fù)制數(shù)據(jù)和數(shù)據(jù)庫(kù)對(duì)象,轉(zhuǎn)換數(shù)據(jù)并通知其它用戶或者事件程序。信息包可以被編輯,密碼保護(hù),執(zhí)行調(diào)度,并且能夠通過版本來(lái)檢索。
伴隨著信息包存在著DTS任務(wù)。DTS任務(wù)是一組離散的功能,在信息包中單步執(zhí)行。每一個(gè)任務(wù)定義了作為數(shù)據(jù)移動(dòng)和數(shù)據(jù)轉(zhuǎn)換進(jìn)程的一部分待執(zhí)行的工作項(xiàng)目,或者作為待執(zhí)行的任務(wù)。一般用于DTS任務(wù)的例子包括1)輸入和輸出數(shù)據(jù),2)轉(zhuǎn)換數(shù)據(jù),3)復(fù)制數(shù)據(jù)庫(kù)對(duì)象,和4)向/和其它的用戶和信息包發(fā)送/接收信息。
完成DTS部件和操作的是DTS轉(zhuǎn)換。在數(shù)據(jù)到達(dá)目的地之前,一個(gè)DTS轉(zhuǎn)換是一個(gè)或者多個(gè)依據(jù)一個(gè)數(shù)據(jù)塊應(yīng)用的功能或者操作。
如附圖3所示,典型的計(jì)算環(huán)境包括客戶端,運(yùn)行時(shí)間和任務(wù)。箭頭和數(shù)字表示客戶端、運(yùn)行時(shí)間和任務(wù)間通信和操作的順序。箭頭數(shù)字1指示的第一通信是在客戶端和運(yùn)行時(shí)間間進(jìn)行的,在此客戶創(chuàng)建可執(zhí)行的或者可選的向運(yùn)行時(shí)間加載信息包。響應(yīng)于客戶端,運(yùn)行時(shí)間創(chuàng)建箭頭2示出的任務(wù)。任務(wù)在認(rèn)為合適的位置創(chuàng)建斷點(diǎn)并將斷點(diǎn)位置傳輸給運(yùn)行時(shí)間,如箭頭3所示。實(shí)際上,編程者在創(chuàng)建信息包和/或執(zhí)行的任何時(shí)候創(chuàng)建斷點(diǎn)。任務(wù)僅僅在計(jì)算環(huán)境中設(shè)置斷點(diǎn),本質(zhì)上為執(zhí)行準(zhǔn)備。
響應(yīng)于任務(wù)斷點(diǎn)設(shè)置,客戶端通過如箭頭4所示的技術(shù)斷點(diǎn)集合開啟斷點(diǎn)。在這里,客戶端和運(yùn)行時(shí)間進(jìn)行通信以開啟斷點(diǎn)??蛻舳巳缓笤谶\(yùn)行時(shí)間中執(zhí)行如箭頭5.1所示的信息包和/或執(zhí)行。然后,運(yùn)行時(shí)間執(zhí)行如箭頭5.2所示的可執(zhí)行信息包的任務(wù)。當(dāng)執(zhí)行時(shí),任務(wù)可能遇到先前設(shè)置的斷點(diǎn)。在這里,任務(wù)和斷點(diǎn)通信,遇到運(yùn)行時(shí)間,如箭頭6所示。如箭頭7所示,運(yùn)行時(shí)間將斷點(diǎn)調(diào)用發(fā)送到客戶端。現(xiàn)在客戶端位于檢測(cè)執(zhí)行直到確定了斷點(diǎn)的位置并且研究發(fā)現(xiàn)問題源。如果滿意,如箭頭9所示,客戶端調(diào)用恢復(fù)信息包。如箭頭10所示,這種調(diào)用使得運(yùn)行時(shí)間依次調(diào)用所有任務(wù)上的恢復(fù)程序。
附圖4示出了在可插拔部件中實(shí)現(xiàn)斷點(diǎn)調(diào)試所執(zhí)行的進(jìn)程。如圖所示,進(jìn)程從方框400到方框405,在這里客戶創(chuàng)建對(duì)象模型中的信息包。從這個(gè)進(jìn)程到方框410,運(yùn)行時(shí)間創(chuàng)建任務(wù)。然后在方框405中任務(wù)創(chuàng)建斷點(diǎn)。在方框420中響應(yīng)于斷點(diǎn)的創(chuàng)建,客戶端啟動(dòng)斷點(diǎn)??蛻舳藞?zhí)行信息包425,在方框430中運(yùn)行時(shí)間執(zhí)行任務(wù)。在方框435中任務(wù)遇到設(shè)置的斷點(diǎn),在方框440遇到斷點(diǎn)通知給客戶端。在方框445中運(yùn)行時(shí)間調(diào)用中止操作。在方框450中,直到滿意為止,客戶端調(diào)用恢復(fù)任務(wù),在方框455中運(yùn)行時(shí)間調(diào)用恢復(fù)任務(wù)。進(jìn)程進(jìn)行到方框460中結(jié)束。
D.結(jié)論總之,這里所述的系統(tǒng)和方法提供了可插拔部件的斷點(diǎn)調(diào)試。然而可以理解的是本發(fā)明允許不同的修改和變化的結(jié)構(gòu)。并不想將本發(fā)明限制在這里所述的特定結(jié)構(gòu)。相反,在本發(fā)明的范圍和精神下,本發(fā)明覆蓋了所有的修改,可選的結(jié)構(gòu)和同等物。
還要注意的是本發(fā)明可以在各種計(jì)算機(jī)環(huán)境(既包括無(wú)線的也包括有線的計(jì)算機(jī)環(huán)境)、部分計(jì)算環(huán)境和真實(shí)世界環(huán)境中實(shí)施。這里所描述的各種技術(shù)可以用硬件來(lái)實(shí)施或者用軟件來(lái)實(shí)施,或者是二者的結(jié)合。優(yōu)選的,這些技術(shù)可以作為在可編程的計(jì)算機(jī)上執(zhí)行的計(jì)算機(jī)程序,每個(gè)所述計(jì)算機(jī)包括處理器,處理器可讀的存儲(chǔ)器媒體(包括易失的和非易失的存儲(chǔ)器和/或存儲(chǔ)元素),至少一個(gè)輸入設(shè)備和一個(gè)輸出設(shè)備。程序代碼被用于使用輸入設(shè)備輸入的數(shù)據(jù)以執(zhí)行上述的功能并產(chǎn)生輸出信息。輸出信息施加到一個(gè)或者多個(gè)輸出設(shè)備。優(yōu)選的,每個(gè)程序可以用高級(jí)程序或者面相對(duì)象的編程語(yǔ)言來(lái)實(shí)施,以和計(jì)算機(jī)系統(tǒng)進(jìn)行通信。然而,如果需要還可以用匯編或者機(jī)器語(yǔ)言來(lái)實(shí)施。在任何情況下,語(yǔ)言可以是編譯或翻譯的語(yǔ)言。優(yōu)選的,每一個(gè)這樣的計(jì)算機(jī)程序存儲(chǔ)在一般計(jì)算機(jī)或者是特殊用途的計(jì)算機(jī)可以讀取的存儲(chǔ)媒體或者設(shè)備上(例如ROM或者磁盤),當(dāng)計(jì)算機(jī)讀取存儲(chǔ)媒體或者設(shè)備來(lái)執(zhí)行上述程序時(shí)配置和操作計(jì)算機(jī)。這種系統(tǒng)也可以考慮實(shí)施為計(jì)算機(jī)可讀取配置有計(jì)算機(jī)程序的存儲(chǔ)媒體,這種配置的存儲(chǔ)媒體致使計(jì)算機(jī)以特定的和預(yù)先定義的方式來(lái)進(jìn)行操作。
盡管上面已經(jīng)詳細(xì)描述了本發(fā)明典型的實(shí)施例,本領(lǐng)域的技術(shù)人員容易理解的是,在實(shí)質(zhì)上不脫離本發(fā)明新穎性教導(dǎo)和優(yōu)點(diǎn)的情況下對(duì)本發(fā)明的實(shí)施例進(jìn)行附加的修改是可能的。因此,這些和所有這樣的修改端口包括在本發(fā)明的范圍之內(nèi)。本發(fā)明可以用以下的權(quán)利要求來(lái)更好的進(jìn)行解釋。
權(quán)利要求
1.對(duì)象模型調(diào)試方法,包括通過執(zhí)行環(huán)境的調(diào)試接口揭示一組斷點(diǎn);以預(yù)定的間隔檢查斷點(diǎn)的狀態(tài);和響應(yīng)中止和恢復(fù)的請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在信息包配置部件和可插拔部件之間進(jìn)行通信。
3.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括由調(diào)試接口接收輸入以處理,所述輸入指示用于執(zhí)行和配置信息包的指令。
4.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在至少一個(gè)任務(wù)上設(shè)置斷點(diǎn)。
5.根據(jù)權(quán)利要求4所述的方法,進(jìn)一步包括任務(wù)執(zhí)行期間任務(wù)遇到設(shè)置斷點(diǎn)。
6.根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括將斷點(diǎn)傳送給調(diào)試接口。
7.根據(jù)權(quán)利要求6所述的方法,進(jìn)一步包括在遇到設(shè)置斷點(diǎn)前由調(diào)試接口分析所述任務(wù)的狀態(tài)。
8.根據(jù)權(quán)利要求7所述的方法,進(jìn)一步包括由調(diào)試接口恢復(fù)任務(wù)。
9.一種計(jì)算機(jī)可讀媒體,該媒體具有讓計(jì)算機(jī)執(zhí)行以下任務(wù)指令通過執(zhí)行環(huán)境的調(diào)試接口揭示一組斷點(diǎn);以預(yù)定的間隔檢查斷點(diǎn)的狀態(tài);和響應(yīng)中止和恢復(fù)的請(qǐng)求。
10.對(duì)象模型調(diào)試方法,包括提供一接口管理器,所述接口管理器和所述對(duì)象模型的一個(gè)或多個(gè)部件進(jìn)行通信;確定斷點(diǎn)的位置;執(zhí)行運(yùn)行時(shí)間以遇到斷點(diǎn)。
11.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括執(zhí)行信息包。
12.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括執(zhí)行由于信息包執(zhí)行而產(chǎn)生的至少一個(gè)任務(wù)。
13.根據(jù)權(quán)利要求10所述的方法,所述確定步驟包括由接口管理器設(shè)置斷點(diǎn)。
14.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括根據(jù)遇到的斷點(diǎn)中止包含斷點(diǎn)的對(duì)象模型。
15.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括中止時(shí)分析對(duì)象模型部件以確定是否存在運(yùn)行時(shí)間問題。
16.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括恢復(fù)中止的對(duì)象模型部件。
17.一種計(jì)算機(jī)可讀媒體,具有讓計(jì)算機(jī)執(zhí)行以下任務(wù)的指令提供一接口管理器,所述接口管理器和對(duì)象模型的一個(gè)或多個(gè)部件進(jìn)行通信;確定斷點(diǎn)的位置;執(zhí)行運(yùn)行時(shí)間以遇到斷點(diǎn)。
18.用于調(diào)試可插拔部件中的斷點(diǎn)的系統(tǒng),包括調(diào)試接口,能夠在運(yùn)行期間和可插拔部件進(jìn)行通信以觀察部件的行為并且控制部件;和斷點(diǎn),在可插拔部件中設(shè)置所述斷點(diǎn)以便在運(yùn)行期間當(dāng)遇到斷點(diǎn)時(shí),調(diào)試接口能夠中止和/或恢復(fù)可插拔部件的操作,來(lái)觀察可插拔部件的操作。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),所述的調(diào)試接口在可插拔部件中設(shè)置斷點(diǎn)。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),所述調(diào)試接口顯示可插拔部件在運(yùn)行期間和中止期間的狀態(tài)。
全文摘要
提供了一種可插拔部件斷點(diǎn)的調(diào)試。在一個(gè)具有擴(kuò)展的可插拔部件的計(jì)算環(huán)境中,提供一種系統(tǒng)和方法在部件運(yùn)行期間在不同的點(diǎn)設(shè)置斷點(diǎn),以便可以發(fā)現(xiàn)、跟蹤、和解決錯(cuò)誤。在一個(gè)示出的實(shí)施例中,計(jì)算環(huán)境包括了客戶端、運(yùn)行時(shí)間和任務(wù)。操作中,客戶端和運(yùn)行時(shí)間和任務(wù)進(jìn)行通信以執(zhí)行調(diào)試操作。運(yùn)行期間任務(wù)和客戶端通信并設(shè)置斷點(diǎn)。當(dāng)遇到斷點(diǎn)時(shí)任務(wù)中止,說(shuō)明任務(wù)執(zhí)行中出現(xiàn)了問題,這樣客戶端能夠執(zhí)行調(diào)試。直到滿意后,客戶端恢復(fù)運(yùn)行期間的任務(wù)操作。
文檔編號(hào)G06F9/44GK1573713SQ20041006847
公開日2005年2月2日 申請(qǐng)日期2004年6月21日 優(yōu)先權(quán)日2003年6月20日
發(fā)明者J·K·哈塞爾登, B·J·哈特曼 申請(qǐng)人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
竹溪县| 大庆市| 浦江县| 稷山县| 霸州市| 南华县| 星座| 巴青县| 双流县| 工布江达县| 剑河县| 承德市| 和静县| 闸北区| 彭州市| 仪陇县| 洪泽县| 潼南县| 鹤庆县| 阿拉善盟| 十堰市| 奉贤区| 阳信县| 凯里市| 晋中市| 桦南县| 封开县| 铜鼓县| 德清县| 年辖:市辖区| 卢氏县| 秦安县| 信阳市| 嘉祥县| 扎鲁特旗| 阆中市| 辽源市| 雷山县| 桂平市| 运城市| 南涧|