內(nèi)的本地和/或遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
[0091] 參考圖7,用于實(shí)現(xiàn)本發(fā)明的各個(gè)方面的示例性系統(tǒng)可以包括計(jì)算機(jī)700形式的 通用計(jì)算設(shè)備。組件可包括但不限于各種硬件組件(諸如處理單元701)、數(shù)據(jù)存儲(chǔ)702 (諸 如系統(tǒng)存儲(chǔ)器)、以及將包括數(shù)據(jù)存儲(chǔ)702在內(nèi)的各種系統(tǒng)組件耦合到處理單元701的系 統(tǒng)總線703。系統(tǒng)總線703可以是若干類型的總線結(jié)構(gòu)中的任一種,包括使用各種總線體 系結(jié)構(gòu)中的任一種的存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及局部總線。作為示例而非 限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增 強(qiáng)型ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線和外圍部件互連(PCI)總線 (也稱為夾層(Mezzanine)總線)。
[0092] 計(jì)算機(jī)700通常包括各種計(jì)算機(jī)可讀介質(zhì)704。計(jì)算機(jī)可讀介質(zhì)704可以是能由 計(jì)算機(jī)700訪問(wèn)的任何可用介質(zhì),并同時(shí)包含易失性和非易失性介質(zhì)以及可移動(dòng)、不可移 動(dòng)介質(zhì),但不包括傳播信號(hào)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)704可包括計(jì)算機(jī)存儲(chǔ)介 質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以存儲(chǔ)諸如計(jì)算機(jī)可讀的指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊 或其他數(shù)據(jù)之類的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介 質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不僅限于,RAM、ROM、EEPROM、閃存或其他存儲(chǔ)器技術(shù)、CD-ROM、 數(shù)字多功能盤(DVD)或其他光盤存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備,或可以 用來(lái)存儲(chǔ)所需信息并可以被計(jì)算機(jī)700訪問(wèn)的任何其他介質(zhì)。通信介質(zhì)通常以諸如載波或 其他傳輸機(jī)制之類的已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他 數(shù)據(jù),并且包括任何信息傳送介質(zhì)。術(shù)語(yǔ)已調(diào)制數(shù)據(jù)信號(hào)摂是指使得以在信號(hào)中編碼信息 的方式來(lái)設(shè)置或改變其一個(gè)或多個(gè)特性的信號(hào)。作為示例而非限制,通信介質(zhì)包括諸如有 線網(wǎng)絡(luò)或直接線連接之類的有線介質(zhì),以及諸如聲學(xué)、RF、紅外及其他無(wú)線介質(zhì)之類的無(wú)線 介質(zhì)。上面各項(xiàng)中的任何項(xiàng)的組合也包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。計(jì)算機(jī)可讀介質(zhì)可 被實(shí)現(xiàn)為計(jì)算機(jī)程序產(chǎn)品,諸如存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)介質(zhì)上的軟件。
[0093] 數(shù)據(jù)存儲(chǔ)或系統(tǒng)存儲(chǔ)器702包括諸如只讀存儲(chǔ)器(ROM)和/或隨機(jī)存取存儲(chǔ)器 (RAM)之類的易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì)?;据斎?輸出系統(tǒng) (BIOS)包含有助于諸如啟動(dòng)時(shí)在計(jì)算機(jī)700中元件之間傳遞信息的基本例程,它通常被存 儲(chǔ)在ROM中。RAM通常包含處理單元701可立即訪問(wèn)和/或當(dāng)前正在操作的數(shù)據(jù)和/或程 序模塊。作為示例而非限制性,數(shù)據(jù)存儲(chǔ)702保存操作系統(tǒng)、應(yīng)用程序、其他程序模塊、和程 序數(shù)據(jù)。
[0094] 數(shù)據(jù)存儲(chǔ)702還可以包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ) 介質(zhì)。僅作為示例,數(shù)據(jù)存儲(chǔ)702可以是對(duì)不可移動(dòng)、非易失性磁介質(zhì)進(jìn)行讀寫的硬盤驅(qū)動(dòng) 器,對(duì)可移動(dòng)、非易失性磁盤進(jìn)行讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)諸如CD ROM或其它光學(xué)介質(zhì)等 可移動(dòng)、非易失性光盤進(jìn)行讀寫的光盤驅(qū)動(dòng)器??稍谑纠圆僮鳝h(huán)境中使用的其它可移動(dòng) /不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能 盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。上文所描述的并且在圖7中所顯示的驅(qū)動(dòng)器以及它 們的關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì),為計(jì)算機(jī)700提供對(duì)計(jì)算機(jī)可讀取的指令、數(shù)據(jù)結(jié)構(gòu)、程序模 塊及其他數(shù)據(jù)的存儲(chǔ)。
[0095] 用戶可通過(guò)用戶接口 705或諸如平板、電子數(shù)字化儀、話筒、鍵盤和/或定點(diǎn)設(shè)備 (通常指的是鼠標(biāo)、跟蹤球或觸摸墊)等其它輸入設(shè)備輸入命令和信息。其他輸入設(shè)備可以 包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。另外,語(yǔ)音輸入、使用手或手指的手勢(shì) 輸入、或其它自然用戶接口(NUI)也可與適當(dāng)?shù)妮斎朐O(shè)備(諸如話筒、相機(jī)、平板、觸摸墊、 手套、或其它傳感器)一起使用。這些及其他輸入設(shè)備常常通過(guò)耦合到系統(tǒng)總線703的用 戶輸入接口 705連接到處理單元701,但是,也可以通過(guò)其他接口和總線結(jié)構(gòu),如并行端口、 游戲端口或通用串行總線(USB),來(lái)進(jìn)行連接。監(jiān)視器706或其他類型的顯示設(shè)備也通過(guò)諸 如視頻接口之類的接口連接至系統(tǒng)總線703。監(jiān)視器706也可以與觸摸屏面板等集成。注 意到監(jiān)視器和/或觸摸屏面板可以在物理上耦合至其中包括計(jì)算設(shè)備700的外殼,諸如在 平板型個(gè)人計(jì)算機(jī)中。此外,諸如計(jì)算設(shè)備700等計(jì)算機(jī)還可以包括其他外圍輸出設(shè)備,諸 如揚(yáng)聲器和打印機(jī),它們可以通過(guò)輸出外圍接口等連接。
[0096] 計(jì)算機(jī)700可使用至一個(gè)或多個(gè)遠(yuǎn)程設(shè)備(諸如遠(yuǎn)程計(jì)算機(jī))的邏輯連接707在 網(wǎng)絡(luò)化或云計(jì)算環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PCji 等設(shè)備或其它常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括上面相對(duì)于計(jì)算機(jī)700所述的許多或全部元 件。圖7中所描述的邏輯連接包括一個(gè)或多個(gè)局域網(wǎng)(LAN)和一個(gè)或多個(gè)廣域網(wǎng)(WAN),但 是,也可以包括其他網(wǎng)絡(luò)。此類聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特 網(wǎng)中是常見(jiàn)的。
[0097] 當(dāng)在聯(lián)網(wǎng)或云計(jì)算環(huán)境中使用時(shí),計(jì)算機(jī)700可通過(guò)網(wǎng)絡(luò)接口或適配器707連接 至公共或私有網(wǎng)絡(luò)。在一些實(shí)施例中,使用調(diào)制解調(diào)器或用于在網(wǎng)絡(luò)上建立通信的其它裝 置。調(diào)制解調(diào)器可以是內(nèi)置或外置的,它經(jīng)由網(wǎng)絡(luò)接口 707或其它適當(dāng)?shù)臋C(jī)制連接至系統(tǒng) 總線703。諸如包括接口和天線的無(wú)線聯(lián)網(wǎng)組件可通過(guò)諸如接入點(diǎn)或?qū)Φ扔?jì)算機(jī)之類的合 適的設(shè)備耦合到網(wǎng)絡(luò)。在聯(lián)網(wǎng)環(huán)境中,相關(guān)于計(jì)算機(jī)700所示的程序模塊或其部分可被存 儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。可以理解,所示的網(wǎng)絡(luò)連接是示例性的,也可以使用在計(jì)算機(jī) 之間建立通信鏈路的其他手段。
[0098] 盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但可以理解,所附權(quán) 利要求書中定義的主題不必限于上述特定特征或動(dòng)作。相反,上述具體特征和動(dòng)作是作為 實(shí)現(xiàn)權(quán)利要求的示例形式公開(kāi)的。
【主權(quán)項(xiàng)】
1. 一種在計(jì)算環(huán)境中用于分析正在執(zhí)行的進(jìn)程的方法,所述方法包括: 從所述正在執(zhí)行的進(jìn)程生成進(jìn)程快照,其中所述進(jìn)程快照和正在執(zhí)行的進(jìn)程被允許獨(dú) 立地運(yùn)行; 將診斷工具與所述快照進(jìn)程相關(guān)聯(lián);以及 使用所述診斷工具從所述進(jìn)程快照中收集數(shù)據(jù),而不影響所述正在執(zhí)行的進(jìn)程。
2. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述進(jìn)程快照包括使用頁(yè)表 復(fù)制和寫時(shí)復(fù)制操作的對(duì)所述正在執(zhí)行的進(jìn)程的克隆。
3. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,進(jìn)一步包括: 從所述正在執(zhí)行的進(jìn)程中生成一個(gè)或多個(gè)附加的進(jìn)程快照;以及 比較來(lái)自所述進(jìn)程快照中任意進(jìn)程快照的數(shù)據(jù)以標(biāo)識(shí)隨著時(shí)間的存儲(chǔ)器使用方面的 改變。
4. 如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,進(jìn)一步包括: 基于歷史收集數(shù)據(jù)來(lái)調(diào)整何時(shí)生成所述一個(gè)或多個(gè)附加的進(jìn)程快照。
5. 如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,進(jìn)一步包括: 將所述診斷工具與所述附加的快照進(jìn)程中的至少一個(gè)相關(guān)聯(lián);以及 使用所述診斷工具從至少一個(gè)附加的進(jìn)程快照中收集數(shù)據(jù)。
6. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,進(jìn)一步包括: 檢查所述進(jìn)程快照的存儲(chǔ)器,同時(shí)允許所述正在執(zhí)行的進(jìn)程運(yùn)行。
7. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述進(jìn)程快照在觸發(fā)事件發(fā) 生時(shí)被生成。
8. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,進(jìn)一步包括: 在創(chuàng)建所述快照進(jìn)程的同時(shí)掛起所述正在執(zhí)行的進(jìn)程。
9. 在計(jì)算環(huán)境中的一種包括用于調(diào)試正在執(zhí)行的進(jìn)程的功能的計(jì)算機(jī)系統(tǒng),所述計(jì)算 機(jī)系統(tǒng)包括:一個(gè)或多個(gè)處理器;一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì);一個(gè)或多個(gè)被作為存儲(chǔ)在 所述計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)可執(zhí)行指令來(lái)實(shí)現(xiàn)的計(jì)算機(jī)模塊,當(dāng)由一個(gè)或多個(gè)處理器 執(zhí)行時(shí),所述計(jì)算機(jī)可執(zhí)行指令使得處理器如下執(zhí)行: 從所述正在執(zhí)行的進(jìn)程中生成進(jìn)程快照,所述進(jìn)程快照包括所述正在執(zhí)行的進(jìn)程的克 隆,所述進(jìn)程快照和正在執(zhí)行的進(jìn)程被允許獨(dú)立地運(yùn)行; 將診斷工具與所述快照進(jìn)程相關(guān)聯(lián);以及 使用所述診斷工具從所述進(jìn)程快照中收集數(shù)據(jù),而不影響所述正在執(zhí)行的進(jìn)程。
10. 如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于,進(jìn)一步包括: 從所述正在執(zhí)行的進(jìn)程中生成一個(gè)或多個(gè)附加的進(jìn)程快照;以及 比較來(lái)自所述進(jìn)程快照中任意進(jìn)程快照的數(shù)據(jù)以標(biāo)識(shí)隨著時(shí)間的存儲(chǔ)器使用方面的 改變。
【專利摘要】調(diào)試和診斷系統(tǒng)允許用戶取得正在運(yùn)行的被調(diào)試進(jìn)程的輕量進(jìn)程快照,因此用戶可以在稍后時(shí)間分析這些快照。快照機(jī)制允許診斷工具將原始進(jìn)程和一個(gè)或多個(gè)進(jìn)程快照進(jìn)行比較,或?qū)⒁幌盗羞M(jìn)程快照中的任意快照相互比較。所述快照機(jī)制還允許用戶檢查進(jìn)程存儲(chǔ)器的快照,同時(shí)允許原始進(jìn)程以最小影響方式繼續(xù)運(yùn)行。用戶可使用隨著時(shí)間取得的被調(diào)試進(jìn)程的進(jìn)程快照來(lái)進(jìn)行歷史調(diào)試。這允許用戶查看被調(diào)試進(jìn)程的狀態(tài),就好象其在快照被攝取時(shí)所存在的那樣。輕量進(jìn)程快照是較不侵略性的,因?yàn)樗灰蟠鎯?chǔ)器的完整副本并且允許原始進(jìn)程在完成特定收集和檢查的同時(shí)不被中斷地運(yùn)行。
【IPC分類】G06F11-14, G06F11-36, G06F11-30
【公開(kāi)號(hào)】CN104520819
【申請(qǐng)?zhí)枴緾N201380041353
【發(fā)明人】J·戴維斯, T·H·金, C·A·湯姆森, S·卡羅爾
【申請(qǐng)人】微軟公司
【公開(kāi)日】2015年4月15日
【申請(qǐng)日】2013年8月1日
【公告號(hào)】EP2880536A1, US8909990, US20140040669, US20150127991, WO2014025594A1