TWI509409B - 用於檢視在一程式之執行期間錄製之記錄之方法及系統 - Google Patents

用於檢視在一程式之執行期間錄製之記錄之方法及系統 Download PDF

Info

Publication number
TWI509409B
TWI509409B TW102106325A TW102106325A TWI509409B TW I509409 B TWI509409 B TW I509409B TW 102106325 A TW102106325 A TW 102106325A TW 102106325 A TW102106325 A TW 102106325A TW I509409 B TWI509409 B TW I509409B
Authority
TW
Taiwan
Prior art keywords
program
images
display
recorded
record
Prior art date
Application number
TW102106325A
Other languages
English (en)
Other versions
TW201342047A (zh
Inventor
Donald J O'riordan
David Varghese
Original Assignee
Cadence Design Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cadence Design Systems Inc filed Critical Cadence Design Systems Inc
Publication of TW201342047A publication Critical patent/TW201342047A/zh
Application granted granted Critical
Publication of TWI509409B publication Critical patent/TWI509409B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)

Description

用於檢視在一程式之執行期間錄製之記錄之方法及系統
本發明係關於用於電腦系統之軟體,且更特定而言係關於診斷電腦程式執行中之錯誤。
軟體之複雜度及精密度持續增加。諸多軟體應用程式已逐漸變為包括更大量之功能及能力。舉例而言,一種常見的應用程式係電子設計自動化(EDA),其中使用精密設計軟體來創建愈來愈複雜的設計,諸如電子組件設計。設計軟體允許圖形設計之創建、檢視及編輯及輸出且包括模擬功能。其他圖形編輯器允許創建諸多不同類型之設計。
在更複雜的功能性下,軟體程式通常可更易於出現錯誤及當機。舉例而言,諸如圖形編輯器等軟體程式易於出現程式錯誤及當機問題,且通常用於其中一當機不能容易地重現之環境中。即使一當機係可重現的,由於欲收集之資料之量及複雜度及/或安全性及敏感性問題(例如,研究重要設計之消費者通常不希望與軟體供應商分享其設計的所有技術細節),收集一可重現測試案例以促進對軟體之除錯通常係令人望而卻步的。
因此,軟體開發者具有對精密除錯工具之需要。一種常見的除錯工具包括存取及記錄,其中使用一堆疊存取或其他存取功能來判定 一程式之執行之內部步驟或事件,且將該等步驟或事件作為項目或訊息儲存於一記錄檔案中。在程式中發生一程式錯誤或當機之情形下,一檢閱者稍後可檢閱記錄檔案項目以判定導致程式錯誤或當機之程式之執行操作以幫助診斷問題。然而,記錄檔案具有數個限制。雖然諸多消費者或其他使用者願意與一軟體供應商或其他檢閱者分享此等記錄,但通常情形係記錄含有之資訊不足以使一檢閱者能夠理解或重現問題以便對其進行除錯。記錄可含有在軟體當機之前由程式之一互動使用者執行之低階動作之一存取,但其不包括描述導致當機之使用者之輸入或動作之脈絡資訊。檢閱者通常難以理解使用者當時正嘗試做什麼或使用者當時正嘗試對何種類型之資料操作一特定軟體特徵。另外,記錄通常包括描述諸多不同動作之極大數目之項目,此檢閱起來可係費時的。此等缺點限制記錄檔案之診斷能力。
本發明闡述錄製及播放程式之存取記錄及視訊記錄。在一項態樣中,一種用於檢視在一程式之執行期間錄製之記錄之方法包括致使描繪在一特定時間週期期間與該程式之先前視覺使用者互動之所錄製影像之一顯示。該方法亦包括致使存取並描述在該特定時間週期期間該程式之先前執行之訊息之一顯示。使該等訊息之該顯示與該等所錄製影像之該顯示同步化。
在另一態樣中,一種用於檢視在一程式之執行期間錄製之記錄之系統包括至少一個儲存裝置,該至少一個儲存裝置儲存描繪在一特定時間週期期間與該程式之先前視覺使用者互動之複數個所錄製影像。至少一個處理器操作以執行包括以下各項之操作:致使該等所錄製影像之一顯示;致使存取並描述在該特定時間週期期間該程式之先前執行之訊息之一顯示;及致使該等訊息之該顯示與該等所錄製影像之該顯示之同步化。
在另一態樣中,一種用於在一電腦系統上之一程式之執行期間錄製記錄之方法包括擷取描繪在該程式之執行期間在一顯示裝置上顯示之與該程式之持續視覺使用者互動之影像。將該等所擷取影像之一子組儲存於一儲存裝置上,該子組係預定數目個該等所擷取影像。取代一最舊所儲存之所擷取影像而儲存一新擷取之影像以維持該預定數目個該等所擷取影像。
本文中所揭示之實施例允許對軟體操作中之程式錯誤、當機及其他錯誤之增強的診斷,因此減少除錯軟體之時間及努力。
12‧‧‧中央處理單元
14‧‧‧記憶體
16‧‧‧顯示裝置/裝置
18‧‧‧儲存裝置/較大容量儲存裝置
20‧‧‧輸入裝置
22‧‧‧其他周邊器件
26‧‧‧圖形設計軟體/應用程式/圖形編輯應用程式
28‧‧‧記錄產生區塊/區塊/本端記錄產生區塊
30‧‧‧檢視器區塊/檢視器/本端檢視器
100‧‧‧圖形介面/介面
102‧‧‧存取記錄檢視/檢視
104‧‧‧影像記錄檢視/檢視/影像檢視
106‧‧‧視窗
108‧‧‧主視窗
110‧‧‧主檢視
112‧‧‧游標
120‧‧‧影像播放控制件
122‧‧‧停止動畫按鈕
124‧‧‧開始動畫按鈕/開始按鈕
126‧‧‧啟用重複按鈕
128‧‧‧停用重複按鈕
130‧‧‧水平條顯示器
132‧‧‧進度條
140‧‧‧強調提示指示符
x‧‧‧系統/第一系統/第二系統
圖1係圖解說明適合與本文中所揭示之一或多項實施例一起使用之一系統之一方塊圖;圖2A及圖2B係根據本文中所闡述之實施例可用於檢視記錄之一圖形介面之一項實例性實施例之圖解說明;圖3係圖解說明根據本文中所闡述之某些特徵用於一程式提供記錄之一方法之一項實例之一流程圖;圖4係圖解說明包括本文中所闡述之特徵之用於錄製影像記錄之一方法之一項實例之一流程圖;圖5係圖解說明其中將快照影像展現為視訊記錄之圖4之一步驟之一個實例性程序之一流程圖;及圖6係圖解說明用於播放包括痕跡記錄及影像記錄之程式執行之一記錄之一方法的一項實例的一流程圖。
本文中所闡述之實施例係關於用於電腦系統之軟體,且更特定而言係關於診斷電腦程式執行中之錯誤。熟習此項技術者將容易地明瞭對本文中所闡述之實施例及本文中所闡述之一般原理及特徵之各種修改。因此,本文中之實施例並不意欲限制於所展示之實例,而應賦 予其與本文中所闡述之原理及特徵相一致的最廣泛範疇。
主要根據特定實施方案中所提供之特定方法及系統來闡述此等實施例。然而,熟習此項技術者將容易地認識到,此等方法及系統將在其他實施方案中有效地操作。舉例而言,可與本發明實施例一起使用之系統實施方案可採取若干種不同形式。亦將在具有某些步驟之特定方法之背景下闡述本發明實施例。然而,該等方法及系統針對具有不符合此等實施例之不同及/或另外步驟之其他方法有效地操作。
本文中所闡述之實施例可採取軟體實施例、硬體實施例或含有硬體元件及軟體元件兩者之一實施例之形式。一軟體實施例可包括但不限於由一處理器或處理單元運行之韌體、駐存軟體、微碼等。一硬體實施例可利用邏輯閘、處理器、電子組件及其他硬體元件。此外,某些實施例可採取一電腦程式產品之形式,該電腦程式產品可自提供程式碼以供一電腦或任何指令執行系統使用或結合一電腦或任何指令執行系統使用之一電腦可用或電腦可讀媒體中存取。出於此說明之目的,一電腦可用或電腦可讀媒體可係可含有、儲存、傳遞、傳播或傳送程式以供指令執行系統、設備或裝置使用或結合指令執行系統、設備或裝置使用之任何設備。該媒體可係一電子、磁性、光學、電磁、紅外線或半導體系統(或設備或裝置)或一傳播媒體。一電腦可讀儲存媒體之實例包括:一半導體或固態記憶體、磁帶、一可抽換式電腦磁碟、一隨機存取記憶體(RAM)、一唯讀記憶體(ROM)、快閃記憶體、一剛性磁碟、一光碟及一固態記憶體磁碟機。光碟之當前實例包括唯讀記憶體光碟(CD-ROM)、讀/寫光碟(CD-R/W)、DVD及藍光碟。
本文中之實施例可增強一軟體程式之執行中之錯誤的診斷。特徵允許藉由錄製運行程式及/或作業系統圖形桌面之視覺顯示(諸如,互動使用者之桌面或軟體視覺狀態之影像)而擷取並儲存在程式執行期間輸出之視覺資訊。對包括影像記錄之一視訊之此錄製係結合一執 行存取而執行,該執行存取產生項目及/或將該等項目儲存於描述在影像錄製之相同時間週期期間程式之執行之一存取記錄檔案中。特徵亦允許將該記錄呈現給一檢閱使用者,其中可採用一同步化方案以與由運行程式產生之記錄檔案項目之顯示(例如,以文字形式)同步地將影像記錄之一播放展現為一視訊。此允許一檢閱使用者藉由檢視在軟體程式正在執行存取記錄檔案中之所錄製步驟之每一時刻由運行程式及/或系統顯示之影像及物件且允許將執行期間之視覺事件連結至存取記錄檔案中之事件而判定在所存取程式執行期間發生之一視覺脈絡。
在某些實施例中,可採用一環形緩衝器方案來儲存影像記錄,從而將影像資料之量限制為預定數目個影像及/或以一特定播放速率(例如,圖框/秒)之軟體程式執行之一預定持續時間。所儲存之影像資料因此限於所錄製之軟體程式程序之執行之最終且通常最相關的時間跨度,藉此節省系統資源。
該影像記錄提供對在軟體程式終止(諸如,由於一程式當機)之前不久互動使用者之經歷之歷史的洞察之視訊。所錄製影像記錄與存取記錄檔案資料之組合提供一組豐富資訊,供檢閱使用者甚至在完全不存在一可重現測試案例(其在實務上經常發生)之情形下,嘗試除錯由互動使用者及/或程式經歷之一當機問題或其他問題。此解決傳統存取記錄檔案提供的用於錯誤診斷之通常不充足資訊。在某些實施例中,錄製影像記錄不需要使用標準桌面視訊錄製工具。
各種使用者可使用可提供如下文所闡述之眾多特徵之錄製及/或檢閱系統。本文中,一「互動使用者」係在其正常使用中使用一標的程式且其互動根據本文中所闡述之特徵被錄製之一使用者,且一「檢閱使用者」係檢視描述該互動使用者對該標的程式之使用之所產生記錄之一使用者。在各項實施例中,此等使用者可係一單人,或單獨的 個體。在某些實施例中,此等「使用者」可包括人以及與系統介接之其他程式。
術語「記錄」或「記錄」在本文中用於指代自存取一程式之內部執行步驟或事件而提供之記錄(諸如,儲存於一存取記錄檔案中,例如,函數調用)(「存取記錄」)以及在程式執行期間錄製之視覺程式及作業系統輸出之影像(「影像記錄」或「視訊記錄」)兩者。存取記錄在本文中亦可稱作「訊息」、「項目」或「訊息項目」,此乃因此資料通常提供為係存取記錄檔案中之項目之訊息。當呈現給使用者時,該等訊息通常顯示為文字訊息(包括文字樣符號)。在其他實施例中,可以一非文字形式呈現存取記錄,諸如使用音訊等。
為更特定地闡述所闡述實施例之特徵,請結合下文論述參考圖1至圖6。
圖1係圖解說明適合與本文中所揭示之一或多項實施例一起使用之一系統10之一方塊圖。系統10可惜任何合適電腦系統、伺服器或者其他電子或硬體裝置。舉例而言,系統10可實施於一大型電腦或伺服器、桌上型電腦、工作站、可攜式電腦或電子裝置(機頂盒、可攜式裝置、蜂巢電話、個人數位助理、媒體播放器、遊戲裝置等)中。系統10包括一CPU 12、記憶體14、顯示裝置16、儲存裝置18、輸入裝置20及其他周邊器件22。
CPU 12可係一或多個處理器或處理電路以執行程式碼且控制系統10之基本操作,包括處理操作、操縱資料、發出命令至系統10之其他組件等。舉例而言,一作業系統可在系統10上運行且由CPU 12及系統10之其他組件實施。CPU 12亦可實施圖形設計軟體26及其他軟體,如下文進一步所闡述。
記憶體14通常提供於系統10中供CPU 12存取,且可包括各種類型(諸如,隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除唯 讀記憶體(EEPROM)、快閃記憶體等)中之一或多者。
顯示裝置16輸出所顯示影像至系統10之一使用者。顯示裝置16可係各種類型之顯示器(包括LCD、電漿、CRT等)中之任一者。顯示裝置16之某些實施方案包括具有一螢幕大小(例如,在其內顯示影像之一區域)之一螢幕。在某些實施例中,CPU 12及/或與顯示裝置通信之一不同處理器可藉由提供適當信號至用於在裝置16上顯示影像之系統10之眾所周知之組件而致使顯示裝置上之影像之顯示。
儲存裝置18可儲存可由CPU檢索之資料,諸如程式指令及/或資料,包括所錄製及/或所播放之記錄中之某些或全部,如本文中所闡述。一或多個儲存裝置18可提供於系統10中及/或提供於其他系統中且與系統10通信,諸如經由一網路或其他通信鏈路。儲存裝置18可係用於以電子方式儲存資料之各種裝置(諸如,硬碟、硬碟陣列、固態記憶體(快閃、RAM、ROM等)、CD-ROM、DVD-ROM、藍光碟、磁帶等)中之任一者。記憶體14亦可被視為一儲存裝置18。
儲存器件(諸如,儲存裝置18)亦可實施一環形緩衝器供與本文中所闡述之記錄錄製之某些實施例一起使用。環形緩衝器可分配一固定儲存量或儲存位置以儲存記錄(諸如,影像記錄(圖框)),且在某些實施例中亦可儲存與每一圖框相關聯之資料,諸如游標座標及對應存取記錄檔案位置。在環形緩衝器容量填滿之後,在環形緩衝器中之最舊圖框上儲存一新或額外圖框,從而允許使用受約束或受限制之儲存量。在某些實施例中,環形緩衝器可實施於一較大容量儲存裝置18中,諸如一磁碟或光碟或快閃記憶體,其可提供比記憶體14大的用於視訊圖框之儲存量及/或可避免佔據可由運行程式(諸如,應用程式26)使用之系統記憶體14。各項實施例可將所有影像圖框及相關聯資訊儲存於一較大容量儲存裝置18上,或將所有影像及相關聯資訊儲存於記憶體14中。或者,影像資料可儲存於一較大容量儲存裝置18上之一環 形緩衝器(諸如,一磁碟)中,且相關聯資料可儲存於記憶體14中之另一環形緩衝器中。
輸入裝置20可包括允許使用者輸入命令及資料至系統10之各種裝置(包括一鍵盤、滑鼠、軌跡球、手寫筆、觸控螢幕、麥克風/話音辨識裝置、運動感測器、其他電子裝置(諸如,另一電腦系統或可攜式電子裝置)或其他輸入裝置)中之任一者。其他周邊器件22可包括連接至系統10且由系統10使用之任何其他裝置,諸如執行一或多個功能且與系統10通信之任何周邊器件、卡或介面裝置(諸如,使得系統10能夠透過介入私用或公用網路變為耦合至其他電腦系統或裝置之網路配接器)、掃描器、感測器、輸出裝置(例如,印表機、揚聲器)等。在圖1之實例中,顯示裝置16藉由其自己的專用匯流排連接至CPU 12,而儲存裝置18、輸入裝置20及其他周邊器件22可連接至亦連接至CPU之一共同匯流排。在其他實施例中,顯示裝置16及其他裝置可各自具有其自己的匯流排,或共用一或多個共同匯流排。可根據眾所周知之標準及協定中之任一者使用線或以無線方式實施匯流排或其他鏈路中之一或多者。
一應用程式26可由CPU 12(及/或系統10之其他處理器)至少部分地實施,例如,如記憶體14及/或儲存裝置18上所儲存之程式碼所引導。舉例而言,應用程式26可係根據本文中所闡述之特徵存取並記錄之標的程式。應用程式26可係由系統10執行之任何程式且通常提供一使用者可與其互動之一視覺介面。舉例而言,應用程式26可致使顯示裝置16上之一介面及視覺輸出之顯示且自輸入裝置20中之一或多者接受輸入以控制應用程式及介面之功能。在一實例性實施例中,應用程式26可係一圖形編輯應用程式及介面以允許設計或影像之創建及編輯。在某些實施例中,舉例而言,一圖形設計應用程式26可允許設計者創建並編輯用於積體電路示意圖、電路板之設計(諸如,圖形示意 圖及電路圖設計)或用於導引積體電路之製造之其他電子設計。其他圖形編輯應用程式可允許一使用者創建或編輯其他類型之設計、影像、文件或其他資料。
記錄產生區塊28可至少部分地由CPU 12及/或系統10之其他處理器基於讀取自一儲存裝置之程式碼來實施。區塊28之功能性可提供為應用程式26(或所記錄之另一標的程式)之部分,或可提供為一不同應用程式、作業系統,或可與應用程式26分離之其他程式的部分。記錄產生區塊28可基於應用程式26之執行且基於與應用程式之使用者互動而產生記錄。在某些實施例中,所產生之記錄包括存取應用程式26之執行之一存取記錄檔案及描繪一互動使用者與應用程式26之視覺互動之影像記錄。舉例而言,可使用應用程式26之功能來產生存取記錄,且可使用該應用程式之一程序或執行緒來產生影像記錄。其他實施例可使用不同組態,且可在不同程式中拆分存取記錄及影像記錄產生。在某些實施例中,記錄產生區塊28可包括一或多個標準化的組件,諸如一存取記錄檔案產生程式、顯示擷取程式,以擷取並產生影像資料等。
檢視器區塊30可至少部分地由CPU 12實施以允許一檢閱使用者選擇程式執行之一特定儲存記錄,且顯示或重放該所儲存之記錄,包括存取記錄及影像記錄,如下文更詳細地闡述。在某些實施例中,檢視器區塊30可係一單獨程式,諸如一標準檢視應用程式,例如,一web瀏覽器或一文件檢視器。在其他實施例中,檢視器功能性可包括於應用程式26或所記錄之其他標的程式中。
舉例而言,在某些實施例中,系統10用於基於一互動使用者使用應用程式26及系統10而產生記錄,且檢視器30及同一系統10由一檢閱使用者用來檢閱所儲存之記錄。在其他實施例中,一第一系統10可由一互動使用者用來與一應用程式26互動以使得一本端記錄產生區塊 28產生並儲存記錄,且一第二系統10可存取所儲存之記錄(例如,經由一網路)以使得一檢閱使用者可使用一本端檢視器30在第二系統上顯示記錄。
圖2A及圖2B係根據本文中所闡述之實施例可由系統10中之一顯示裝置16顯示且可用於檢視記錄之一圖形介面100之一項實例性實施例之一圖解說明。介面100可顯示於一顯示螢幕上以允許一檢閱使用者(舉例而言)選擇介面100中之所顯示選項。在圖2A至圖2B之實例中,一檢閱使用者已選擇一標的程式之程式執行之一所儲存記錄且已命令在介面100中顯示/重放該記錄。舉例而言,介面100可由可存取在標的程式執行期間產生之所儲存記錄之一檢視器區塊30顯示。在一項實例中,舉例而言,介面100可由一web瀏覽器或其他檢視器程式顯示。介面100展示為一圖形使用者介面內之一或多個所顯示視窗,但可在其他介面中以其他形式顯示。可顯示允許使用者選擇應用程式及介面100之各種檢視及編輯功能之各種控制件,諸如選單項及按鈕。
所顯示介面100包括可在一視窗中或顯示器之其他特定區域中顯示之一存取記錄檢視102。存取記錄檢視102顯示已由檢閱使用者選擇顯示及/或重放之所儲存記錄之存取記錄。在某些實施例中,存取記錄檔案可係由應用程式26或一公用程式產生之記錄之一標準檔案,且檢視102顯示記錄檔案訊息之一文字展現。在此實例中,存取記錄檢視102顯示標的程式之先前執行之多個步驟或事件,每一步驟在一不同文字行上。可基於檢閱使用者輸入(例如,使用捲軸或其他控制件)及/或基於影像記錄檢視104之顯示而使存取記錄檢視102之顯示捲動。
在某些實施例中,檢視102中之每一訊息可指示曾發生之一程式執行步驟或事件及彼事件之特定性質。舉例而言,在圖2A至圖2B中 所展示之實例中,帶有前綴「\a」之訊息可指示互動使用者項目,且可描述由於標的程式(諸如,應用程式26)之一介面中之選單選擇或其他使用者選擇而叫用之命令。類似地,「\i」文字行可描述當執行一點擊(例如,一圖形設計視窗中之一滑鼠按鈕之一點擊)時之額外互動使用者輸入,諸如一視窗中之一使用者控制游標(例如,滑鼠指標)之座標。在該實例中,「\r」文字行可指示系統回應,諸如,一「t」字元表示一狀態旗標之一「真」狀態,且「nil」指示一「假」狀態。此外,「\p」文字行可指示對使用者之系統所產生回應。其他前綴或文字表示符亦可用於指示系統所產生提示、輸出或資訊訊息、警告、錯誤、診斷(記憶體使用等)。
在此實例之存取記錄檢視102中之訊息中之某些訊息中叫用之命令可描述在執行期間由標的程式採取之各種步驟中之任一者。舉例而言,在圖2A至圖2B之實例中,「hiZoomIn()」命令可指示互動使用者叫用一縮放命令以致使標的程式之一圖形檢視視窗改變為一所顯示影像或設計之一較近檢視。跟隨此命令之座標可指示建立該縮放命令之尺寸及位置之一使用者繪製之限定框之一拐角。跟隨該等座標之系統提示提示互動使用者輸入限定框之對角相對之拐角之座標且跟隨該提示之座標指示彼拐角之互動使用者之輸入座標。跟隨該等座標之第一系統回應「t」(真)指示對第二組座標之系統回應(指示現在接收限定框之整組座標),且第二「t」對縮放之使用者之命令叫用作出回應(指示縮放命令完成及被起始)。可以類似方式指示其他命令及回應,諸如搖攝或其他檢視編輯命令、繪製或其他創建命令、命令之使用者取消等。其他實施例可使用不同格式及命令來存取程式執行。
介面100亦包括為檢閱使用者以一視覺形式顯示影像記錄之一影像記錄檢視104。影像記錄檢視104可顯示在互動使用者與標的程式之互動期間擷取之影像,且進行展現以用於顯示。在此實例中,影像記 錄檢視104顯示在互動使用者與標的程式之互動期間可見的顯示多個視窗106之一圖形使用者介面或桌面之一影像。因此,檢視104中之影像擷取在當互動使用者在運行標的程式之一系統上使用標的程式時之一先前時間期間擷取互動使用者之顯示螢幕之輸出。在此實例中,標的程式係一應用程式26,且係提供允許一互動使用者創建及/或編輯用於積體電路之一圖形電路圖設計之一主視窗108之一圖形編輯應用程式。標的程式之主視窗108中之一主檢視110顯示其一圖形電路圖或部分,包括設計物件及/或設計之其他組件或特徵。展示一游標112(諸如,一滑鼠指標),在與圖形編輯程式之互動(諸如,選擇主檢視110中之物件或區域,選擇其他所顯示選單或清單中之命令等)期間其由互動使用者控制。在其他實施例中,由標的程式提供之僅一或多個視窗被擷取為影像記錄且在影像記錄檢視104中顯示。在其中標的程式係一圖形編輯應用程式之其他實施例中,可顯示來自其他類型之圖形編輯應用程式之影像,諸如線繪圖之影像、圖形形狀、照片影像或視訊、地圖或其他影像。在其他實施例中,其他類型之標的程式可提供影像記錄,諸如辦公應用程式(文書處理器、電子錶單等)、遊戲、公用程式、基於web之應用程式、模擬或其他類型之應用程式。
在某些實施例中,影像記錄檢視104中可顯示一或多個順序影像(例如,圖框)以描繪互動使用者與標的程式之互動。該等順序影像可形成一視訊動畫,其展示在互動時間由互動使用者在一顯示螢幕上經歷之互動使用者之動作。舉例而言,視訊影像可根據由檢閱使用者選擇之一圖框速率來顯示。在其他實施例中,影像記錄檢視104中可顯示一單個靜態影像,或如在一幻燈片放映中依序緩慢地顯示一系列影像。
介面100亦可包括可由一檢閱使用者選擇之影像播放控制件120,在此實例中其顯示於影像記錄檢視104內,例如,在彼檢視中所 顯示之影像下面及/或上面。在所展示之實例中,此等控制件可包括一停止動畫按鈕122、一開始動畫按鈕124、一啟用重複按鈕126及一停用重複按鈕128。開始動畫按鈕124致使描繪隨著時間互動使用者與標的程式之動作之一視訊或影像序列根據一預定及/或使用者可設定圖框速率在影像記錄檢視104中播放。在某些實施例中,一水平條顯示器130或其他顯示器可參考由條顯示器之寬度表示之視訊之整個長度而藉由一進度條132指示當前播放位置,且允許一檢閱使用者選擇條顯示器內之任何位置以在選定位置處開始播放。停止動畫按鈕122致使任何播放動畫停止。啟用重複按鈕126及停用重複按鈕128允許一檢閱使用者選擇影像播放是否將在視訊之結尾播放之後在視訊之開頭處自動重新開始。亦可提供其他標準視訊播放控制件,諸如快進、倒轉、下一曲目或下一視訊(例如,若可存取多個影像記錄)等。
根據本文中所闡述之實施例之某些特徵,使存取記錄檢視102及影像記錄檢視104中之顯示在其播放上同步化。因此,檢視102中所顯示之存取記錄檔案資料之一或多個訊息與當前在影像記錄檢視104中顯示之影像對應。在某些實施例中,存取記錄檢視102中可顯示一或多個視覺指示符以展示哪一特定文字訊息(程式執行步驟或事件)與當前在檢視104中顯示之影像對應。舉例而言,如介面100中所展示,一強調提示指示符140或其他指示符可強調提示對應於所顯示影像之存取記錄訊息。隨著互動使用者進行之進一步互動之視訊繼續其播放,使存取記錄檢視102中之訊息適當地捲動以顯示並強調提示當前對應於所顯示影像之訊息。
此等特徵允許一檢閱使用者容易地比較互動使用者之動作之視覺脈絡與針對標的程式發生的系統內部步驟及事件。若標的程式中發生一當機,自視訊影像知曉互動使用者之動作之視覺脈絡且自存取記錄檔案知曉系統事件。在用於電路設計之一圖形編輯程式之一項實例 中,此允許檢閱使用者除錯及/或鑑別一當機以判定(舉例而言)當軟體當機或退出時一互動使用者是否在編輯一示意圖或一電路圖之過程中,且若是,則另外判定互動使用者正在與何種類型之設計物件互動(例如,對於示意圖而言,此等物件可係接針、線或符號例項,且對於電路圖而言,其可係線、通孔、路由導引件等)。
圖3係圖解說明根據本文中所闡述之某些特徵用於一程式產生記錄之一方法200之一項實例之一流程圖。方法200及本文中所闡述之其他方法可(舉例而言)由系統10或其他系統中之組件實施,該等組件包括一或多個CPU或處理器(或處理電路)及一顯示裝置16。此等方法可藉由可儲存於一電腦可讀媒體上之軟體、程式指令或程式碼來實施。另一選擇係,此等方法可以硬體(邏輯閘等)或以硬體與軟體之一組合來實施。應注意,若適當,本文中之方法中所闡述之步驟可以不同於所展示之次序之一次序及/或與其他步驟同時(部分地或完全地)執行。
方法200在202處開始,且在步驟204中,啟動一影像錄製程序。此程序將影像記錄錄製為當使用者操作程式時由互動使用者經歷之程式及/或作業系統之視覺輸出之影像之一序列,且亦擷取使用者經由一使用者控制之游標之互動。在某些實施例中,該影像錄製程序可由互動使用者在一電腦系統(諸如,系統10)上與其互動之標的程式(諸如,應用程式26)啟動。舉例而言,該影像錄製程序可係由程式啟動之控制之一單獨程序或執行緒。在某些實施例中,當起始標的程式時可自動叫用及起始次錄製程序。此對於互動使用者而言可係便利的,此乃因不需要獨立地叫用一單獨影像錄製程式。在其他實施例中,該影像錄製程序可由(例如)於系統10或一不同所連接系統上在背景中運行之一單獨程式實施。
在步驟206中,標的程式起始或提供基於互動使用者對標的程式之執行而產生並儲存存取記錄之存取記錄檔案產生功能性。舉例而 言,標的程式可在其程式碼內包括此存取記錄檔案產生功能性,或可調用或命令一單獨程式開始並促進存取記錄檔案產生,例如,藉由截獲對標的程式之執行調用並寫入至記錄檔案。
在步驟208中,執行互動使用者對標的程式之操作,例如,互動使用者在程式之正常使用中提供輸入且接收輸出。舉例而言,互動使用者可與標的程式之一圖形介面互動,移動程式之介面內之一游標,輸入命令至標的程式,存取程式之各種功能,自標的程式接收輸出等。影像記錄及存取記錄在此操作期間產生。
在步驟210中,標的程式由於一不期望之終止(諸如,由於一程式錯誤所致之當機)或由於某一其他不期望之事件或錯誤或者由於一正常且期望之終止(諸如,互動使用者選擇一退出命令、一持續時間期滿等)而終止。該程序因此在212處結束。
圖4係圖解說明包括本文中所闡述之特徵之用於錄製影像記錄之一方法250之一項實例之一流程圖。舉例而言,方法250可由由圖3之步驟204中之標的程式啟動之單獨程序或執行緒實施,且在互動使用者對標的程式之操作期間執行。
方法250在252處開始,且在步驟254中,該方法變為「睡眠」達1/f秒,其中f係以圖框/秒(fps)為單位之錄製影像記錄之圖框速率。此允許該程序每秒「喚醒」f次以在每次喚醒時執行對步驟256之檢查。在步驟256中,該程序檢查標的程式是否仍正在執行,例如,標的程式是否已終止及是否仍應錄製額外影像記錄。在某些實施例中,可藉由以下方式來執行此檢查:將一查詢發送至運行標的程式及方法250之系統10之作業系統程序表,以判定對應於標的程式之一項目是否存在於程序表中。若標的程式未正在執行,則該程序繼續至步驟264以展現包括所擷取影像之視訊,如下文所詳述。
若標的程式仍正在執行,則在步驟258中,該程序拍攝互動使用 者對程式之使用之一快照影像。舉例而言,該快照可係當標的程式正在運行時顯示螢幕上之使用者之桌面影像之快照,或該快照可係螢幕之一指定視窗或其他所界定區域之快照。在某些實施例中,可使用至在系統10上運行之一顯示伺服器程式(例如,用於一UNIX作業系統之X伺服器)或至執行影像擷取且將其發送至方法250之另一顯示公用程式之一查詢或命令來擷取及接收此快照。在其他實施例中,快照擷取功能性可包括於標的程式或記錄產生區塊中。
所擷取影像儲存於一儲存裝置上。在某些實施例中,影像儲存於下一可用儲存空間中之一環形緩衝器中。若該環形緩衝器已滿,則以一新擷取之快照覆寫儲存最舊所擷取影像之空間以維持緩衝器中之所擷取影像之一預定最大數目。以此方式,僅將所擷取影像之一子組儲存於環形緩衝器中以節省儲存空間。舉例而言,影像之該子組係最近的快照,其可描繪在當儲存新擷取之影像時之一當前時間點之前發生之一預定時間週期期間之視覺使用者互動。該等最近的快照可能係與程式之任何後續終止有關之最相關影像。環形緩衝器方案允許高效地使用儲存空間且當針對不確定的持續時間錄製影像時重新使用,此通常係當產生程式執行之影像記錄時所闡述之實施例中之情形。某些實施例可包括關於在覆寫最舊影像之前儲存多少影像之一使用者指定之設定,例如,以執行之秒數、圖框之數目等來指定。
在步驟260中,該程序判定並儲存一使用者控制之游標之當前位置。舉例而言,可將一標準查詢或命令發送至一作業系統程序,該作業系統程序提供指示一所參考顯示區域(諸如,一桌面或程式視窗)中之游標之位置之一滑鼠指標或其他使用者控制之游標之座標。在某些實施例中,游標座標可與在步驟258中拍攝之相關聯快照一起或與使其與在步驟258中拍攝之快照相關之一識別符一起儲存於一儲存裝置(例如,目錄)中。某些實施例可以與上文類似之方式使用一環形緩衝 器方案來儲存座標,例如,儲存於與快照相同之環形緩衝器中,或儲存於一不同(對應)環形緩衝器中。在其他實施例中,座標儲存於一不同儲存裝置(例如,記憶體14)中且可儲存所儲存游標座標與對應影像快照之間的一連結。在某些實施例中,可將一時間戳與座標一起儲存,從而指示其被取樣或儲存之時間。
在步驟262中,該程序判定並儲存同時儲存來自程式執行之訊息項目之存取記錄檔案之當前位置。可以不同方式來表示此記錄檔案位置。舉例而言,可指定記錄檔案之一當前大小,從而指示自記錄檔案之開頭之一偏移(例如,以位元組或其他度量為單位)及記錄檔案之當前結尾之一位置,其中此位置對應於互動使用者之當前活動。在其他實施例中可以其他方式指定該位置。在某些實施例中,可使用對作業系統關於此資訊之一查詢來獲得此記錄檔案位置。在某些實施例中,可如上文所闡述使用一環形緩衝器方案來儲存該記錄檔案位置,例如,儲存於一不同環形緩衝器項目中或儲存在步驟258中拍攝之對應快照及/或在步驟260中儲存之游標座標之相同環形緩衝器中。
在某些實施例中,可如上文所闡述使用一環形緩衝器方案來儲存所有三個此等條資訊(快照、游標位置及記錄檔案位置)。舉例而言,此方案可經實施以儲存不多於F * D條資訊,其中F係以圖框/秒為單位之圖框速率,且D係在將資料覆寫於緩衝器中之前將錄製之視訊(影像序列)之持續時間。在某些實施例中,舉例而言,由於欲儲存之大量資料,快照之儲存可利用磁碟儲存,且游標座標及記錄檔案位置之儲存可儲存於一環形緩衝器中之記憶體中。舉例而言,在包括快照之檔案之儲存期間,可使用模F * D演算法來產生此等檔案之檔名,以便在儲存裝置上自動覆寫較早的檔名及快照。
返回參考步驟256,若在一喚醒期間該程序判定標的程式不再係正在執行(例如,未找到程序表中之一對應項目),則影像錄製程序結 束,且在步驟264中,執行來自該等快照之視訊(或其他影像序列)記錄之一展現。下文圖5就此更詳細地闡述此展現。然後,該程序在266處完成。
圖5係圖解說明其中將快照影像展現為視訊記錄之圖4之步驟264之一個實例性程序之一流程圖。此程序在程式終止之後發生,使得程式執行一直到程式終止期間所產生的影像記錄(例如,快照)及存取記錄兩者皆可用。該程序在302處開始,且在步驟304中根據其創建時間將快照影像排序。舉例而言,在來自圖4之實例中,創建F * D快照,其中F係以圖框/秒為單位之圖框速率,且D係視訊之持續時間(在某些實施例中,其至少部分可由環形緩衝器之大小判定)。該等快照亦可轉換至一適當格式,從而允許影像處理。舉例而言,在某些實施例中,該等快照可轉換至PNG檔案、JPG檔案或其他格式。在步驟306中,處理存取記錄檔案以用於顯示。此允許以期望之格式顯示記錄檔案。舉例而言,在某些實施例中,可藉由一標準web瀏覽器來顯示存取記錄及影像記錄,標準web瀏覽器通常顯示一HTML(超文件標示語言)檔案。在此等實施例之某些實施例中,可藉由修改存取記錄檔案(或創建一複本並對其進行修改)(藉由將一標頭區段添加至記錄檔案,諸如一HTML標頭(例如,以下實例性清單2中之前11行))來處理存取記錄檔案,從而允許檢視器區塊30顯示記錄檔案訊息。
在步驟308中,該程序檢查是否存在欲處理之影像記錄之另一圖框。若否,則該程序繼續至步驟324,下文闡述。若存在欲處理之另一圖框,則在步驟310中獲得快照中之一者(諸如,以步驟304之次序或以一使用者指定之次序之下一快照)以形成視訊圖框之基礎。在步驟312中,獲得對應於所獲得快照之游標座標。舉例而言,該等座標可表示在錄製該快照時由互動使用者控制之一滑鼠指標之位置。此等座標係在圖4之步驟260中儲存。在某些實施例中,自一儲存項目獲得 對應於所獲得快照之游標座標或藉由將使其相關聯之一識別符匹配至所獲得快照(時間戳、數字ID等)來獲得對應於所獲得快照之游標座標。在選用步驟314中,基於所獲得游標座標而將一游標影像合成在圖框上。可在其中未在所錄製快照影像中擷取游標之一影像之實施例中執行此步驟,以使得可添加游標之一影像以允許一檢閱使用者參考在錄製影像記錄時互動使用者正在採取之動作。舉例而言,一游標之一位元映射圖或其他形式之影像可位於圖框之快照影像內之所檢索座標處。
在步驟316中,將圖框寫入至儲存影像記錄之視訊圖框之一目標目錄。在步驟318中,讀取對應於圖框之存取記錄檔案項目。此等項目係描述在由圖框描繪之視覺輸出期間標的程式之執行或與由圖框描繪之視覺輸出對應之標的程式之執行之一或多個記錄檔案訊息。舉例而言,此等項目可包括描述當互動使用者按下一滑鼠按鈕時一滑鼠指標之座標之接收之記錄檔案訊息,或對應於由滑鼠指標選擇之一所顯示按鈕之一命令之接收。為讀取對應記錄檔案項目,可自儲存器件獲得對應於當前圖框之記錄檔案位置(例如,在圖4之步驟262中儲存),且可讀取記錄檔案中之項目一直至彼位置。舉例而言,可自對應於所顯示之最後圖框之最後記錄檔案位置讀取項目,至當前顯示之圖框之記錄檔案位置。在其他實施例中,可以其他方式判定對應記錄檔案項目,諸如藉由將步驟312之所獲得游標座標匹配至儲存於記錄檔案中之游標座標,或藉由比較時間戳或其他連結。在步驟320中,該程序判定是否存在對應於合成圖框之任何存取記錄檔案項目,例如,在步驟318中檢索之記錄檔案項目之數目是否大於零。舉例而言,若在拍攝最後快照之後無訊息寫入至存取記錄檔案中則可能不存在對應於圖框之項目。若不存在對應記錄檔案項目,則該程序返回至步驟308以檢查是否存在另一圖框。
若存在對應記錄檔案項目,則在步驟322中將標籤插入於經修改之存取記錄檔案中(例如,記錄檔案之經標記版本)。經修改之記錄檔案係包括標籤以允許記錄檔案之項目之強調提示及與影像記錄之顯示之同步化之存取記錄檔案之一版本。在某些實施例中,可在對應於當前圖框之記錄檔案位置(記錄檔案位置係在步驟318中自儲存器件讀取)處將一或多個同步化標籤插入於經修改之記錄檔案中。同步化標籤使記錄檔案中之位置與圖框相關聯,從而允許(舉例而言)在視訊播放中之影像記錄之對應圖框之顯示期間使記錄檔案之對應部分捲動至介面100之檢視中。舉例而言,一同步化標籤可包括與對應圖框之一圖框編號相同之一圖框編號。
亦可將強調提示標籤插入於經修改之記錄檔案中用於記錄檔案部分或項目,諸如表示與標的程式之一使用者命令互動之一訊息。強調提示標籤致使在對應圖框之顯示期間強調提示或以其他方式指示經加標籤之記錄檔案,諸如藉助上文在圖2A至圖2B之實例中所闡述之強調提示指示符140。該程序然後返回至步驟308以檢查是否存在另一圖框。
參考步驟308,若判定無欲處理之額外圖框(例如,不存在更多所錄製之未經處理之影像快照),則該方法繼續至步驟324,在步驟324中,在進行任何所需之完成修改之情形下處理經修改之記錄檔案以用於顯示,諸如用於在一web瀏覽器或其他檢視器中顯示之額外標籤(例如,一HTML檔案中之一關閉</html>標籤)。然後該程序在326處完成。
以下實例性清單1提供可包括經插入之標籤以允許與影像記錄同步地顯示存取記錄之一經修改之記錄檔案之一實例性行。此實例係以HTML格式展示,但在其他實施例中可使用其他格式。
清單1
實例性清單1包括「<span>」標籤,其用作用於強調提示此等標籤內之文字(在「<span」與「</span>」之間)之強調提示標籤。在此實例中,項「_treeNavSelectionClear(dwindow('treeAssistant1))」表示一存取記錄檔案項目,彼項目對應於一互動使用者與一圖形編輯應用程式26之一特定組件之互動,諸如提供用於一選擇之一「清除」命令。因此強調提示對應於一特定使用者互動之此項目。實例性清單1亦包括錨定(「<a>」)標籤,其用作用於致使在影像記錄之對應圖框之播放期間使記錄項目捲動至檢視中之同步化標籤。在此實例中,「<span>」及「<a>」標籤指定匹配至組成視訊記錄之圖框序列中之一對應圖框之一圖框編號。
以下實例性清單2提供一經修改之記錄檔案之一較長實例性部分。
清單2
在清單2中,以<span>及錨定標籤來給多個使用者命令加標籤。圖框編號中存在某些間隙,諸如在「圖框30」與「圖框32」之間及在「圖框32」與「圖框35」之間。此等間隙對應於在無程式執行或使用者互動在存取記錄檔案中作用或被錄製之一時間期間獲得之圖框範圍。舉例而言,在此等週期期間標的程式可能一直基本上空閒。
影像及文字記錄之播放
圖6係圖解說明用於播放包括痕跡記錄及影像記錄之程式執行之一記錄之一方法400的一項實例的一流程圖。方法400可(舉例而言)由想要檢視先前產生/錄製之記錄之一檢閱使用者藉由一系統10上之檢視器區塊30實施。舉例而言,在以一HTML格式提供一經修改之記錄檔案之某些實施例中,檢視器30可係可檢視HTML文件且顯示影像及視訊之一web瀏覽器或其他應用程式。其他實施例可以可由一不同類型之檢視器程式檢視之一不同格式來提供記錄。
某些實施例可使用一標準顯示格式或語言實施方法400中之記錄 之顯示。舉例而言,在某些實施例中,可使用JavaScript碼來實施影像記錄之視訊播放以使視訊圖框之一序列動畫化且操縱存取記錄檔案項目之顯示(例如,以HTML提供)以便使此兩種記錄類型之顯示同步化。在某些實例性實施例中,可給一播放區塊或程式提供一開始圖框編號及一結束圖框編號,且在彼等圖框編號之間播放視訊序列。在圖2A至圖2B之實例中,可在一web瀏覽器之一檢視或圖框中在一側上顯示存取記錄檔案訊息項目,且可在另一側上之一檢視中顯示影像記錄圖框及視訊。
方法400在402處開始,且在步驟404中,該程序檢查是否已開始影像記錄之一視訊顯示。舉例而言,該顯示可係在互動使用者對程式之操作期間錄製之標的應用程式之影像之一序列之一視訊動畫。在某些實施例中,檢閱使用者可選擇一控制件,諸如如圖2A至圖2B中所展示之一開始按鈕124,以開始視訊記錄播放。若視訊記錄顯示已開始,則在步驟406中,該程序檢查影像之視訊序列中是否存在欲顯示之另一圖框。舉例而言,若該顯示在視訊序列之結尾處,則不存在其他影像。在此情形下,該程序繼續至步驟408以檢查是否啟用播放之一迴圈功能。若是,則在步驟410中,重設視訊播放以自視訊序列之開頭處之第一圖框開始,例如,在程式終止之前D秒之一點處開始,且該程序返回至步驟404。若不啟用迴圈,則該程序在411處終止。
在步驟406中若存在欲顯示之另一圖框,則在步驟412中判定下一圖框。在步驟406及412中,下一圖框可按(例如)由檢閱使用者選擇之任何順序或次序。舉例而言,可能已選擇視訊影像按相反次序來播放(例如,使用一介面中所顯示之控制件),使得欲顯示之下一圖框在時間上在剛剛顯示之圖框之前。在某些實施例中,檢閱使用者可選擇顯示於存取記錄檔案中之一圖框(諸如,一圖框編號)在介面100中顯示以提供對任何圖框之隨機存取以便藉由此選擇來判定欲顯示之下一 圖框。在下一步驟414中,該程序睡眠達一時間週期1/F*M,其中F係以圖框/秒為單位之圖框速率,且M可係一使用者指定之慢動作乘數因子。舉例而言,預設播放速率可係與錄製影像記錄之快照影像相同之圖框速率,但可藉由將M增加至一期望之位準且增加睡眠時間來延遲此播放圖框速率以較緩慢地檢視記錄。
在步驟416中,顯示下一圖框。舉例而言,該圖框可顯示於介面100之影像檢視104中,如圖2A至圖2B之實例中所展示。在步驟418中,該程序檢查是否存在對應於經修改之記錄檔案中之所顯示圖框之一同步化標籤。如上文所闡述,同步化標籤(諸如,錨定標籤)可包括於經修改之記錄檔案中以標記對應於影像記錄之一特定影像快照之記錄檔案中之一位置。步驟418可檢查記錄檔案是否具有對應於所顯示圖框之一同步化標籤(及/或強調提示標籤)。舉例而言,在清單2中,可將當前圖框之圖框編號匹配至一標籤中所列之圖框編號。若不存在對應於當前圖框之同步化標籤,則該程序繼續至步驟426,下文詳述。
若存在一對應同步化標籤,則在步驟420中,使對應標籤捲動至檢視器程式之顯示中之檢視中,諸如在圖2A至圖2B之介面100之存取記錄檢視102中。該同步化標籤本身不可見,但藉由顯示該標籤,與該標籤相關聯之存取記錄檔案之訊息項目由檢視器程式顯示。在步驟422中,未強調提示存取記錄檔案之所有當前強調提示之項目,諸如與一先前顯示之圖框相關聯之記錄檔案之一或多個項目。在步驟424中,強調提示當前顯示之圖框之存取記錄檔案之項目。舉例而言,此強調提示可基於強調提示標籤(例如,跨度標籤),如在上文所闡述之實例中。對應於所顯示影像之記錄檔案項目之此等顯示及強調提示步驟具有使存取記錄檔案顯示與視訊圖框之顯示同步化之效應。
在步驟426中,該程序檢查檢閱使用者是否已選擇存取記錄之記 錄檔案項目中之一者。舉例而言,檢閱使用者可選擇由檢視器30顯示之一項目。某些實施方案可提供額外JavaScript回調以允許使用者選擇顯示於介面中之文字之一部分。在某些實施例中,檢閱使用者可基於另一方法而選擇一項目(基於所指定之搜尋準則、記錄檔案中之一預定位置等而進行搜尋)。若檢閱使用者已選擇一存取記錄項目,則在步驟428中,停用視訊播放之迴圈(在步驟408中對其進行檢查)且在步驟430中,判定對應於使用者選擇之記錄項目之圖框。舉例而言,某些實施例可基於識別一圖框或與該圖框相關聯之與選定文字相關聯之同步化標籤(或最接近選定文字之標籤)而判定最緊密對應於文字記錄檔案內之選定位置之所儲存圖框。在某些實施例中,舉例而言,JavaScript回調可執行此判定。該程序然後返回至步驟414以睡眠並顯示所判定圖框。若在步驟426中檢閱使用者尚未選擇一記錄項目,則該程序返回至步驟406以檢查是否存在欲顯示之另一圖框。
在某些實施例中,可僅提供存取記錄檔案訊息與影像記錄之顯示之間的部分同步化。舉例而言,在某些實施例中,同步化可基於匹配作為程式執行之部分儲存於存取記錄檔案中之游標座標之圖4之步驟260之所錄製游標座標,其中可存在其中由於使用者執行可能不致使游標座標儲存於記錄檔案中之特定動作(例如,使一視窗最小化、打開一檔案)而無座標儲存於存取記錄檔案中之時間週期。甚至在當存取記錄檔案與影像播放之間不存在顯示同步化時之時間,影像記錄播放仍可輔助一檢閱使用者看到使用者動作之脈絡且幫助診斷程式中之一錯誤或當機。
在某些實施例中,亦可將一環形緩衝器用於存取記錄檔案項目。舉例而言,僅在一當機或其他程式終止之前產生之記錄檔案之最後部分將儲存於緩衝器中。
在其他實施例中,自一互動使用者至一標的程式之上文所闡述 輸入並非由一使用者直接提供,而是由另一系統或程式提供,或自一儲存裝置(諸如,一磁碟或記憶體)讀取。
應注意,上文所闡述之方法中所展示之步驟之次序僅係實例。在其他實施例中,可使用一不同步驟次序,或可同時執行某些步驟,此取決於偏好或實施方案。
儘管已根據所展示之實例闡述了本發明實施例,但熟習此項技術者將容易地認識到,該等實施例可有若干變化形式且此等變化形式皆在本發明之精神及範疇內。因此,熟習此項技術者可在不背離隨附申請專利範圍之精神及範疇之情形下做出諸多修改。

Claims (18)

  1. 一種用於檢視在一程式之執行期間錄製之記錄之方法,該方法包含:致使描繪於一特定時間週期期間該程式之先前視覺使用者與該程式互動之所錄製影像之一第一顯示,其中一環形緩衝器係用以藉由一預定數目個影像來限制該等所錄製影像之儲存量;致使存取並描述在該特定時間週期期間該程式之先前執行之訊息之一第二顯示;及致使該等訊息之該第二顯示與該等所錄製影像之該第一顯示之同步化,其中至少一視覺指示符係用以將該等訊息之一者對應於一當前顯示之所錄製影像。
  2. 如請求項1之方法,其中該先前視覺使用者互動包括一使用者控制之游標的移動。
  3. 如請求項1之方法,其中該等訊息係自由該程式產生之一記錄檔案檢索且顯示為文字之項目。
  4. 如請求項3之方法,其中該等訊息之該第二顯示包括以複數行文字顯示該等訊息,且其中該等訊息之該第二顯示之同步化包括捲動該等行文字以顯示對應於該當前顯示之所錄製影像之該等訊息之該者。
  5. 如請求項3之方法,其中修改該記錄檔案以包括使該記錄檔案中之該等訊息與該等所錄製影像中之對應者相關聯之標籤,且其中致使該同步化包括使一當前顯示之影像與該記錄檔案中之一標籤匹配。
  6. 如請求項1之方法,其中該等訊息之該第二顯示與該等所錄製影像之該第一顯示之該同步化包括使由該等所錄製影像中之至少 一部分描繪之一使用者控制之游標的座標與該等訊息中所儲存的座標匹配。
  7. 如請求項1之方法,其中該等訊息之該第二顯示與該等所錄製影像之該第一顯示之該同步化包括強調提示對應於該等所錄製影像中之一當前顯示者之該等訊息中之至少一者。
  8. 如請求項1之方法,其中該等訊息存取並描述該程式之執行,包括該程式自一使用者接收輸入。
  9. 如請求項1之方法,其中該等所錄製影像之該第一顯示包括該等所錄製影像之一序列作為視訊資料之一第三顯示。
  10. 如請求項3之方法,進一步包含接收選擇自該記錄檔案顯示之該等訊息中之一者之使用者輸入,及致使對應於該選定訊息之該等所錄製影像中之一者之一第四顯示。
  11. 一種用於檢視在一程式之執行期間錄製之記錄之系統,該系統包含:至少一個儲存裝置,其儲存描繪於一特定時間週期期間該程式之先前視覺使用者與該程式互動之複數個所錄製影像;及至少一個處理器,其中該至少一個處理器中之一或多者操作著以執行包含以下各項之操作:致使該等所錄製影像之一第一顯示,其中一環形緩衝器係用以藉由一預定數目個影像來限制該等所錄製影像之儲存量;致使存取並描述在該特定時間週期期間該程式之先前執行之訊息之一第二顯示;及致使該等訊息之該第二顯示與該等所錄製影像之該第一顯示之同步化,其中至少一視覺指示符係用以將該等訊息之一者對應於一當前顯示之所錄製影像。
  12. 一種用於在一電腦系統上於一程式之執行期間錄製記錄之方法,該方法包含:擷取描繪在該程式之執行期間於一顯示裝置上顯示之該程式之持續視覺使用者與該程式互動的複數個影像;將該等所擷取影像之一子組儲存於一儲存裝置上,其中一環形緩衝器係用以藉由一預定數目個影像來限制該等所擷取影像之該子組,該子組係預定數目個該等所擷取影像,且其中取代一最舊所儲存之所擷取影像而儲存一新擷取之影像以維持該預定數目個該等所擷取影像;及將該等所擷取影像與一存取記錄檔案中的多個對應訊息項目同步化,該等對應訊息項目與該複數個影像之該擷取同時存取並描述該程式之該執行,其中至少一視覺指示符係用以將該等訊息項目之一者對應於一當前顯示之所錄製影像。
  13. 如請求項12之方法,其中該等所擷取影像之該所儲存子組描繪在儲存該新擷取之影像時之一當前時間點之前發生之一預定時間週期期間之該視覺使用者互動。
  14. 如請求項12之方法,其中在該程式之一終止後旋即暫停該等影像之該擷取,使得該等所擷取影像之該所儲存子組描繪在該終止之前與該程式之最後視覺互動。
  15. 如請求項12之方法,進一步包含:接收一記錄檔案中之複數個訊息項目,該等訊息項目存取並描述該程式之該執行,及修改該等訊息項目中之至少一部分,以使訊息項目中之該部分與該等所擷取影像中之特定者相關聯。
  16. 如請求項15之方法,其中該修改訊息項目中之該至少一部分包括在該記錄檔案中提供標籤,該等標籤使訊息項目中之該至少 一部分與該等所擷取影像中之該等相關聯者相關聯。
  17. 如請求項16之方法,進一步包含儲存與該等所擷取影像相關聯之記錄檔案位置,每一所儲存記錄檔案位置指示在擷取一所擷取影像時產生之該記錄檔案中之該複數個訊息項目之一訊息項目。
  18. 如請求項12之方法,進一步包含儲存該等所擷取影像中之每一者之座標,該等座標指示在該等所擷取影像中之一顯示區域中一使用者控制之游標的位置。
TW102106325A 2012-02-23 2013-02-22 用於檢視在一程式之執行期間錄製之記錄之方法及系統 TWI509409B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/403,847 US10133653B2 (en) 2012-02-23 2012-02-23 Recording and playback of trace and video log data for programs

Publications (2)

Publication Number Publication Date
TW201342047A TW201342047A (zh) 2013-10-16
TWI509409B true TWI509409B (zh) 2015-11-21

Family

ID=49004638

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102106325A TWI509409B (zh) 2012-02-23 2013-02-22 用於檢視在一程式之執行期間錄製之記錄之方法及系統

Country Status (2)

Country Link
US (1) US10133653B2 (zh)
TW (1) TWI509409B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2009756C2 (en) * 2012-11-05 2014-05-08 Realworld Holding B V Method and arrangement for collecting timing data related to a computer application.
US9311221B2 (en) * 2013-03-15 2016-04-12 Ab Initio Technology Llc Recording program execution
US20150113400A1 (en) * 2013-10-23 2015-04-23 Google Inc. Serving content via an embedded content player with a looping function
US11042274B2 (en) * 2013-12-04 2021-06-22 Autodesk, Inc. Extracting demonstrations from in-situ video content
US9832418B2 (en) 2014-04-15 2017-11-28 Google Inc. Displaying content between loops of a looping media item
US9436540B2 (en) 2014-10-16 2016-09-06 International Business Machines Corporation Automated diagnosis of software crashes
US9459780B1 (en) * 2015-04-29 2016-10-04 Axure Software Solutions, Inc. Documenting interactive graphical designs
US20160357890A1 (en) * 2015-06-04 2016-12-08 Vtool Ltd. Verification Log Analysis
US10019336B2 (en) * 2015-08-26 2018-07-10 International Business Machines Corporation Natural language based capturing of user interface interactions
US10223372B2 (en) * 2016-01-26 2019-03-05 International Business Machines Corporation Log synchronization among discrete devices in a computer system
US10114708B2 (en) 2016-08-31 2018-10-30 International Business Machines Corporation Automatic log collection for an automated data storage library
US10698615B2 (en) * 2016-08-31 2020-06-30 International Business Machines Corporation Trigger event detection for automatic log collection in an automated data storage library
US10223192B2 (en) 2016-08-31 2019-03-05 International Business Machines Corporation Automated data storage library snapshot for host detected errors
EP3526673A4 (en) * 2016-10-11 2020-06-17 Green Hills Software, LLC SYSTEMS, METHODS AND DEVICES FOR VERTICALLY INTEGRATED INSTRUMENTATION AND TRACE RECONSTITUTION
US10455188B2 (en) 2016-11-18 2019-10-22 Microsoft Technology Licensing, Llc Correlating UI with CPU stacks for profiling sessions
US10481999B2 (en) 2016-12-05 2019-11-19 Microsoft Technology Licensing, Llc Partial process recording
CN107122188B (zh) * 2017-04-26 2021-05-11 网易(杭州)网络有限公司 项目进度条图像生成的方法及装置
US10754753B1 (en) * 2017-06-28 2020-08-25 Amazon Technologies, Inc. Performance of virtual machine instances using machine recognition of screenshot images
US10713070B2 (en) * 2018-01-22 2020-07-14 Salesforce.Com, Inc. Systems and methods for capturing and visualizing user interactions across devices
US10657032B2 (en) * 2018-03-30 2020-05-19 Atlassian Pty Ltd Systems and methods for monitoring performance of applications
US11074090B2 (en) * 2018-05-09 2021-07-27 International Business Machines Corporation Virtual action-based troubleshooter
CN109189340B (zh) * 2018-08-29 2021-11-09 上海兆芯集成电路有限公司 用于存取独立硬盘冗余阵列的系统与方法
US10956304B2 (en) * 2019-01-25 2021-03-23 Microsoft Technology Licensing, Llc Dynamic diagnostic code instrumentation over a historic program execution
US10877873B2 (en) 2019-02-07 2020-12-29 Microsoft Technology Licensing, Llc Using historic execution data to visualize tracepoints
US11281560B2 (en) 2019-03-19 2022-03-22 Microsoft Technology Licensing, Llc Input/output data transformations when emulating non-traced code with a recorded execution of traced code
US11782816B2 (en) 2019-03-19 2023-10-10 Jens C. Jenkins Input/output location transformations when emulating non-traced code with a recorded execution of traced code
US10965766B2 (en) * 2019-06-13 2021-03-30 FullStory, Inc. Synchronized console data and user interface playback
US10949332B2 (en) * 2019-08-14 2021-03-16 Microsoft Technology Licensing, Llc Data race analysis based on altering function internal loads during time-travel debugging
CN110753201B (zh) * 2019-11-12 2022-02-08 维沃移动通信有限公司 一种视频录制方法、装置、电子设备及存储介质
US11921620B2 (en) 2021-09-21 2024-03-05 International Business Machines Corporation Generating a visualization of blocks of code statements related to errors in a log file
CN113961534B (zh) * 2021-12-21 2022-05-10 荣耀终端有限公司 生成日志文件的方法和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080294985A1 (en) * 2005-11-11 2008-11-27 Denis Sergeevich Milov Graphical User Interface (Gui) Noise Reduction in a Cognitive Control Framework
US7478279B2 (en) * 2005-06-23 2009-01-13 Cisco Technology, Inc. System and method for debugging an application
US20100088683A1 (en) * 2000-03-03 2010-04-08 Identify Software, Ltd. System and method for software diagnostics using a combination of visual and dynamic tracing
TW201129903A (en) * 2009-12-16 2011-09-01 Intel Corp DFX software debug feature for IO and other non-memory typed transactions
US8060795B2 (en) * 2008-05-15 2011-11-15 International Business Machines Corporation Solution for automatically incorporating diagnostic data within screen capture images

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404474A (en) * 1992-01-10 1995-04-04 Digital Equipment Corporation Apparatus and method for addressing a variable sized block of memory
US6226785B1 (en) * 1994-09-30 2001-05-01 Apple Computer, Inc. Method and apparatus for storing and replaying creation history of multimedia software or other software content
US5835084A (en) * 1996-05-01 1998-11-10 Microsoft Corporation Method and computerized apparatus for distinguishing between read and unread messages listed in a graphical message window
US6467052B1 (en) * 1999-06-03 2002-10-15 Microsoft Corporation Method and apparatus for analyzing performance of data processing system
US7149936B2 (en) * 2002-09-30 2006-12-12 Sharp Laboratories Of America, Inc. Interactive multimedia for remote diagnostics and maintenance of a multifunctional peripheral
US7533371B1 (en) * 2003-09-22 2009-05-12 Microsoft Corporation User interface for facilitating performance analysis for processing
US7653896B2 (en) * 2004-06-30 2010-01-26 Microsoft Corporation Smart UI recording and playback framework
US20060050929A1 (en) * 2004-09-09 2006-03-09 Rast Rodger H Visual vector display generation of very fast moving elements
JP4085337B2 (ja) * 2006-02-13 2008-05-14 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置
EP1857972A1 (en) * 2006-05-19 2007-11-21 FUJIFILM Corporation Center server and image network system
US20080010466A1 (en) * 2006-07-10 2008-01-10 William Hopper Digital identifier chaining
US20100198876A1 (en) * 2009-02-02 2010-08-05 Honeywell International, Inc. Apparatus and method of embedding meta-data in a captured image
WO2011011737A1 (en) * 2009-07-24 2011-01-27 Digimarc Corporation Improved audio/video methods and systems
CN102073581B (zh) 2009-11-23 2015-09-23 新奥特(北京)视频技术有限公司 一种调试信息的输出方法及系统
US10277643B2 (en) * 2014-05-23 2019-04-30 Samsung Electronics Co., Ltd. Server and method of providing collaboration services and user terminal for receiving collaboration services

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088683A1 (en) * 2000-03-03 2010-04-08 Identify Software, Ltd. System and method for software diagnostics using a combination of visual and dynamic tracing
US7478279B2 (en) * 2005-06-23 2009-01-13 Cisco Technology, Inc. System and method for debugging an application
US20080294985A1 (en) * 2005-11-11 2008-11-27 Denis Sergeevich Milov Graphical User Interface (Gui) Noise Reduction in a Cognitive Control Framework
US8060795B2 (en) * 2008-05-15 2011-11-15 International Business Machines Corporation Solution for automatically incorporating diagnostic data within screen capture images
TW201129903A (en) * 2009-12-16 2011-09-01 Intel Corp DFX software debug feature for IO and other non-memory typed transactions

Also Published As

Publication number Publication date
TW201342047A (zh) 2013-10-16
US10133653B2 (en) 2018-11-20
US20130227350A1 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
TWI509409B (zh) 用於檢視在一程式之執行期間錄製之記錄之方法及系統
US10515143B2 (en) Web-based system for capturing and sharing instructional material for a software application
EP2179583B1 (en) Method and apparatus for automated content marking
KR101740495B1 (ko) 아이콘 표시 방법, 장치, 프로그램 및 기록매체
JP3943635B2 (ja) コンピュータ制御型ディスプレイシステムにおいてセッションの再生ポイントを制御する方法
JP3943636B2 (ja) コンピュータ制御型ディスプレイシステム
US10622021B2 (en) Method and system for video editing
RU2018118194A (ru) Способ записи, редактирования и воссоздания компьютерного сеанса
JP2007531940A (ja) ユーザビリティテストを実施する自動化システムおよび方法
US8116179B2 (en) Simultaneous viewing of multiple tool execution results
MX2010012822A (es) Copia de efectos de animacion desde un objeto de fuente al menos a un objeto de objetivo.
US20230129509A1 (en) Previewing method and apparatus for effect application, and device, and storage medium
US9910576B2 (en) Automated multimedia content editing
JP4555214B2 (ja) 情報提示装置、情報提示方法、情報提示プログラム及び情報記録媒体
US11813538B2 (en) Videogame telemetry data and game asset tracker for session recordings
CN112887794B (zh) 视频剪辑方法及装置
JP2013143044A (ja) プログラム、情報処理方法、および情報処理装置
CN102572601B (zh) 一种视频信息显示方法及装置
Jokela et al. Mobile video editor: design and evaluation
JP4397404B2 (ja) 端末管理装置及び端末管理プログラム
CN110569184B (zh) 一种测试方法及终端设备
JP2014153990A (ja) 情報処理装置、情報処理方法およびプログラム
EP4009153A1 (en) Application expansion program, information processing device, and method
JP4116513B2 (ja) 動画情報インデキシング支援装置、動画情報インデキシング支援方法およびプログラム
AU2008288908B2 (en) Method and apparatus for automated content marking

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees