[go: up one dir, main page]

TWI488120B - 用於進行除錯式交易的方法及電腦可讀取儲存媒體 - Google Patents

用於進行除錯式交易的方法及電腦可讀取儲存媒體 Download PDF

Info

Publication number
TWI488120B
TWI488120B TW097117724A TW97117724A TWI488120B TW I488120 B TWI488120 B TW I488120B TW 097117724 A TW097117724 A TW 097117724A TW 97117724 A TW97117724 A TW 97117724A TW I488120 B TWI488120 B TW I488120B
Authority
TW
Taiwan
Prior art keywords
conflict
storage medium
readable storage
computer
computer readable
Prior art date
Application number
TW097117724A
Other languages
English (en)
Other versions
TW200903338A (en
Inventor
Martin Taillefer
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of TW200903338A publication Critical patent/TW200903338A/zh
Application granted granted Critical
Publication of TWI488120B publication Critical patent/TWI488120B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software

Landscapes

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

Description

用於進行除錯式交易的方法及電腦可讀取儲存媒體
本發明係關於交換式記憶體系統之交換式除錯器。
隨著科技的進展,電腦的功能已經越來越強大,且具備更多的處理能力以及記憶體以處理進階作業。近來,電腦科技的發展趨勢已經從不斷提高單一處理器之時脈速度,轉為增加單一電腦中可用之處理器數目。軟體開發者想要利用電腦處理效能提升之優勢,而使得當採用新的硬體時,能夠更快速地執行其軟體應用程式。然而,在這種新的硬體趨勢下,要達到上述目的,必須採用不同的策略:開發者必須排列欲「並行」(有時稱為「平行」)執行之特定軟體應用程式的一或更多任務(task)安排,而使得相同的邏輯作業可同時利用多個處理器,且當將更多處理器加入執行該軟體之電腦中時,可提供更佳的效能。
交換式記憶體(transactional memory,TM)之設計理念係在於協助並行應用程式(concurrent program)之開發,其可對應用程式碼之區域提供不可分割性(atomicity)以及獨立性。交換式記憶體是一種並行控制機制(concurrent control mechanism),其類似資料庫交換(database transaction),可用以控制對於並行運算之共享記憶體的存取。在交換式記憶體的架構中,交換(transaction)係指一段程式碼,用來對共享記憶體執行一系列的讀取以及寫入。 TM可作為傳統鎖定機制的一種替代方案。TM使得可並行應用程式更容易被寫入。交換可明確規定出認定將執行之一系列程式碼,其執行方式應如同獨立執行一般。欲達成此種獨立執行的假象,可藉由對物件進行精細鎖定,以及在一種特殊模式中執行,上述模式係指當發現一交換和某些其他交換衝突時,允許返回該交換之效果。若一資料之存取受到上述鎖定及返回機制之保護,則該資料存取為「交換式」資料存取。
當部著交換式記憶體程式設計模型時,程式設計者會遇到利用交換所產生之效能問題。交換的語意會使得程式碼系列彼此衝突,而導致必須重新執行程式碼系列,以解決衝突。上述重新執行程式碼的動作會偒害關於較低可擴縮性(scalability)及較高消耗能量的效能,且必須被最小化。換句話說,設計軟體時,必須考量到將交換式衝突(transactional conflict)之出現降至最低。然而,問題在於,既有的除錯系統並未支援記憶體交換之輕易診斷、發現、修正效能及正確性之能力。
提出一種除錯器之科技及技術,該除錯器可用於在交換式記憶體系統下執行之應用程式。當執行利用除錯器之特定應用程式時,系統可偵測在該特定應用程式中所設定之至少一衝突點上,何時出現一衝突。提供圖形使用者介面,其可顯示與偵測到之衝突相關的資訊,例如待決交換之交換 狀態。圖形使用者介面可顯示交換狀態和/或與衝突無關之其他細節。可將衝突點指定至特定應用程式中一或更多交換內之原始碼的一或更多區域。亦可將衝突點指定至特定應用程式中之特定變數。當在除錯模式中執行特定應用程式時,若在任何衝突點出現衝突,就會停止執行。
發明內容以簡化之形式介紹實施方式中詳述之本發明的概念。發明內容之本意並非指明申請專利範圍標的之主要或關鍵特徵,亦不應將之用以限定申請專利範圍標的之範圍。
為讓本發明之原理能更明顯易懂,下文特舉本發明之實施例並參照附隨圖式,詳細說明之。然而,當可理解,其本意並非用意限制本發明之範圍。針對此處所述具體實施例之任何修改及修飾,皆屬本發明所屬技術領域中具有通常知識者可想見之範圍。
此處以除錯器(debugger)之一般脈絡來描述本發明實施例所用之系統,上述除錯器可用於在交換式記憶體系統(transactional memory system)下作業之應用程式中之交換(transaction),但上述系統亦可做為其他用途。在本發明一實作中,此處所述之一或更多種技術可實作成一軟體開發應用程式如MICROSOFTVISUAL STUDIO中之功能,或來自任何其他類型之應用程式或服務(可允許在交換式記憶體系統下作業之應用程式中的交換進行除錯)。
如第1圖所示,用以實作本發明實施例系統之一或更多部分之一示範性電腦系統包含一運算裝置,例如運算裝置100。運算裝置100最基本的組態通常包括至少一處理單元102及記憶體104。根據運算裝置100之實際組態及種類,記憶體104可為揮發性(例如RAM)、非揮發性(例如ROM、快閃記憶體等)、或二者的某種組合。第1圖中以虛線106標示上述最基本之組態。
除此之外,運算裝置100亦可具有額外的特徵/功能。舉例而言,運算裝置100亦可包含額外的儲存裝置(可移除式和/或非可移除式),包括但不限於,磁碟片、磁帶、或光碟片。第1圖中,以可移除式儲存裝置108及非可移除式儲存裝置110來表示此類的額外儲存裝置。電腦儲存媒體包括以任何方法或技術實作可用以儲存資訊(例如電腦可讀取指令、資料結構、程式模組或其他資料)之揮發性及非揮發性記憶體、可移除及非可移除媒體。記憶體104、可移除式儲存裝置108、及非可移除式儲存裝置110皆為上述電腦儲存媒體之實施例。電腦儲存媒體包括但不限於RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位多功能影音光碟(DVD)或其他光學儲存媒體、磁匣、磁帶、磁碟儲存或其他磁性儲存裝置、或能夠用以儲存所需資訊且可供電腦系統存取之任何其他媒體。任何上述電腦儲存媒體皆可作為裝置100的一部份。
運算裝置100亦可含有一或多個通訊連接114,其可允許運算裝置100和其他電腦/應用程式115進行通訊。運 算裝置100亦可具有輸入裝置(們)112,例如鍵盤、滑鼠、筆、語音輸入裝置、觸控輸入裝置、相機等等;亦可包括輸出裝置(們)111,例如顯示器、擴音器、印表機等。上述裝置皆為相關領域所熟知,不需於此處贅述。在本發明一實作中,運算裝置100包含交換式除錯器應用程式(transactional debugger application)200。第2圖將詳述交換式除錯器應用程式200。
參照第2圖並連同第1圖,闡明於運算裝置100上作業之交換式除錯器應用程式200。交換式除錯器應用程式200是常駐於運算裝置100上之應用程式之一者。然而,吾人可以理解到,交換式除錯器應用程式200可額外地或替代地具體實作成為一或更多電腦上之電腦可執行指令和/或具體實作於和第1圖所示系統之不同的變化形式中。或者是或除此之外,交換式除錯器應用程式200之一或更多部分可以是系統記憶體104之部分、可位於其他電腦和/或應用程式115上、或電腦軟體相關領域中可用之其他此類變化形式。
交換式除錯器應用程式200包含應用程式邏輯204,其可負責進行此處所述之某些或所有技術。應用程式邏輯204包含邏輯206(可用以提供交換式除錯器應用程式給在交換式記憶體系統下執行之除錯應用程式)、邏輯208(可用以接收來自使用者之輸入,或可利用其他方式針對在交換式記憶體系統下執行之特定應用程式指定一或更多種衝突點)、邏輯210(可用以在除錯模式中執行特定應用程 式)、邏輯212(可用以偵測何時在一衝突點出現衝突,且之後停止應用程式之執行)、邏輯214(可用以提供圖形使用者介面其可顯示交換狀態、變數、和/或與衝突相關之其他資訊)、邏輯216(可用以選擇性地允許使用者針對一或更多種衝突點自訂各種設定,以規定應於何時偵測到衝突)、及其他邏輯220(可用以操作應用程式)。在本發明一實作中,可由另一應用程式以程式方式來呼叫應用程式邏輯204,例如利用單一呼叫(single call)來呼叫對應用程式邏輯204中之一程序(procedure)。
參照第3至6圖,並連同第1至2圖,進一步詳述用以實作交換式除錯器應用程式200之一或更多種實作的步驟。第3圖闡明在本發明一實作中,提供除錯器使用者介面(debugger user interface)給交換式記憶體系統之步驟。在一實施例中,第3圖的流程至少有部分實作在運算裝置100之作業邏輯中。本流程由起始點240開始,提供一交換式除錯器應用程式(步驟242)。系統接收輸入(例如,來自使用者的選擇、命令行、腳本等)以指定一或更多衝突點(conflictpoint)給在交換式記憶體系統下作業之特定應用程式(步驟244)。系統在除錯模式(debug mode)中執行該特定應用程式(步驟246),偵測一衝突(conflict)何時發生於一執行緒(thread)中的衝突點上,以及停止執行(步驟248)。當偵測到衝突時,將該特定應用程式之交換狀態(transactional state)和/或除錯資訊(debugging information)顯示於交換式除錯器之一使用者介面中(步驟250)。使用 者介面可額外地或替代地顯示該特定應用程式中與偵測到之特定衝突無關之交換狀態、變數值、和/或其他除錯資訊。本流程於終點252結束。
參照第4及第5圖,描述關於指定及利用衝突點之實施例。雖然第4及第5圖個別討論關於一單一衝突點的指定,但可隨著使用者之除錯需求而指定一或更多類型之一或更多衝突點。第4及第5圖僅在於表示關於指定及利用一單一衝突點典型之一簡單的流程。
第4圖闡明在本發明一實作中利用衝突點之步驟,該衝突點位於交換式記憶體系統下執行之特定應用程式作業中之一變數上。在一實施例中,第4圖的流程至少有部分實作在運算裝置100之作業邏輯中。本流程由起始點270開始,接收輸入以指定一衝突點給在交換式記憶體系統下執行之特定應用程式作業中之特定變數(步驟272)。系統在除錯模式中執行該特定應用程式(步驟274),且若存取該特定變數而產生衝突時,停止執行該特定應用程式(步驟276)。本流程在終點278結束。
第5圖闡明在本發明一實作中在一交換內利用衝突點以及一原始碼(source code)區域之步驟。在一實施例中,第5圖的流程至少有部分實作在運算裝置100之作業邏輯中。本流程由起始點290開始,接收輸入以指定一衝突點至交換式記憶體系統下執行之特定應用程式作業中之交換之一原始碼區域(步驟292)。系統在除錯模式中執行該特定應用程式(步驟294),且若在執行相同原始碼區域之該 等交換間出現衝突時,停止執行該特定應用程式(步驟296)。本流程在終點298結束。
第6圖闡明在本發明一實作中提供一種高度除錯環境以進行該等交換之步驟。應注意,雖然第6圖描述可用於除錯器中之各種功能,本實施例並不限定特定步驟順序。在一實施例中,第6圖的流程至少有部分實作在運算裝置100之作業邏輯中。本流程由起始點310開始,提供一除錯器介面給在交換式記憶體系統下執行之該等除錯應用程式(步驟312)。系統可選擇性地顯示關於所有待決交換之細節,不論其係在何執行緒上執行(步驟314)。系統可選擇性地顯示關於一特定程式碼段之所有待決交換的細節(步驟316)。系統可選擇性地在不同執行緒上顯示一特定變數之數值(步驟318)。系統可選擇性地以色彩或其他視覺指示來顯示衝突(步驟320)。在其他實作中,可由圖形使用者介面來提供部分、所有上述功能和/或額外功能。本流程在終點322結束。
參照第7至10圖,繪示某些模擬螢幕以闡明可利用交換式除錯器應用程式200檢視之與交換相關的各種類型之資訊。這些螢幕可顯示於使用者之輸出裝置(們)111上。此外,這些螢幕可由輸入裝置(們)112接收來自使用者之輸入。可以理解,這些螢幕僅為交換狀態、變數資訊和/或可供顯示以用於交換之其他相關除錯細節的例示,而非列舉。在其他實作中,亦可運用各種其他資訊細節和/或使用者介面設計。
第7圖為用於本發明一實作中之模擬螢幕340,其可指示在出現衝突點時,所有待決交換(pending transaction)之交換狀態(transactional state)。在所示之假設實施例中,有三個待決的交換(分別為342、356及363)。對於每一交換,顯示與原始檔案344、方法名稱346及基元區塊起始線(atomic block starting line)數目348相關之細節。舉例而言,對於第一交換342,顯示與交換中每一巢狀下代(nested children)相關之原始檔案,連同其個別分法名稱及基元區塊起始線數目。當衝突出現時,正在執行之巢狀下代位於名稱為d.cs之原始檔案350中,其係和稱為「Example」352之方法相關,且該方法由基元區塊線數目8(354)開始。對於第二交換356,當衝突出現時,稱為a.cs之原始檔案358正在執行方法「foo」360且由基元區塊線數目12(362)開始。在衝突偵測時,第三交換正在執行稱為「another one」之方法366,其基元區塊起始線為25(368),原始檔案364名稱為h.cs。堆於所有目前待決交換之此交換狀態及其他資訊可協助使用者決定為什麼在交換中會出現效能和/或其他問題。
第8圖為用於本發明一實作中之模擬螢幕380,其可指示一特定程式碼段之多交換的狀態。第8圖之實施例與第7圖類似,一不同之處在於,本實施例中僅顯示一特定程式碼段之待決交換。可選擇性地將特定程式碼段382本身顯示於螢幕上以供使用者參考。第一交換384有一巢狀子代,當偵測到衝突時,其正在執行原始檔案b.cs(386) 中之方法bar(388)。第二交換392有一巢狀子代,當偵測到衝突時,其正在執行原始檔案c.cs(394)中之方法db(398)。
第9圖為用於本發明一實作中之模擬螢幕410,其可在多執行緒上指示一特定變數之數值。所顯示之特定變數具有經指定之衝突點,且該衝突點在各執行緒間發生衝突。顯示目前每一待決執行緒上該特定變數的每一數值(418及420)與在同一時刻記憶體416中該變數之實數值。選擇性地,可在此螢幕或其他螢幕上之原始碼區域414中顯示所選執行緒412之原始碼。
第10圖為用於本發明一實作中之模擬螢幕430,其可闡明利用視覺指示以顯示在交換間之何處發生衝突。在所示之假設實施例中,已經在一特定變數衝突點出現一衝突。因此,可利用視覺指示432來顯示引發該衝突之執行緒以及該執行緒中目前的變數值。亦可利用視覺指示436來顯示另一執行緒之變數值,以便指明衝突434的存在。在本發明一實作中,使用者可點擊一特定變數(432或436)以檢視與該變數、交換狀態等相關之額外細節。可利用各種其他類型之視覺指示符(visual indicator),以指明已經在指定給特定變數之一衝突點上和/或原始碼區域中偵測到衝突。
第11圖闡明在本發明一實作中,允許使用者自訂關於一特定衝突點之各種設定的步驟。在一實施例中,第11圖的流程至少有部分實作在運算裝置100之作業邏輯中。 本流程由起始點450開始,接收來自使用者之輸入以指定一衝突點給在交換式記憶體系統下作業之特定應用程式(步驟452)。系統接收來自使用者之輸入以自訂對該衝突點之設定,該設定可規定何時應偵測到衝突(步驟454)。系統儲存自訂之設定(步驟456)。當在除錯模式中執行特定應用程式時,系統可利用衝突點(們)之自訂設定以決定何時出現衝突(步驟458)。本流程在終點460結束。
第12圖為用於本發明一實作中之模擬螢幕470,其可闡明允許使用者自訂關於一特定衝突點之各種設定。在所示實施例中,有四個不同的示範性選項,可供使用者針對特定衝突點來選擇。第一選項472允許使用者規定在停止執行之前必須出現多少個衝突。第二選項474允許使用者指出當特定執行緒相對於任何執行緒出現衝突時,僅會停止該特定執行緒。亦可利用第三選項476規定應停止執行之衝突類型,例如讀取衝突、寫入衝突、或讀取及寫入衝突二者。可規定條件表式式(conditional expression)478,若表式為真則該條件表式式478可讓執行停止。雖然第12圖中顯示4個例示,在其他實作中,可利用部分、所有上述衝突點設和/或額外衝突點設定。
雖然上文以專屬於結構功能和/或方法步驟之語言來揭露本發明,然其並非用以將本發明限定於所述之特定功能及步驟。更確切地說,上述特定功能直步驟僅為實作申請專利範圍之實施例。因此本發明之保護範圍當視後附之申請專利範圍所界定者為準,且所有屬於其精神之等價 物、改變及修改,皆屬本發明之保護範圍。
舉例而言,電腦軟體領域中具有通常知識者當可理解,能夠以不同方式來組織本說明書實施例中所述之用戶端和/或伺服器配置、使用者介面螢幕內容和/或資料布置,例如利用一或更多種電腦,上述電腦可包含較少或較多之選項或功能。
100‧‧‧運算裝置
102‧‧‧處理單元
104‧‧‧系統記憶體
106‧‧‧虛線
108‧‧‧可移除式儲存裝置
110‧‧‧非可移除式儲存裝置
111‧‧‧輸出裝置
112‧‧‧輸入裝置
114‧‧‧其他通訊連接
115‧‧‧其他電腦/應用程式
200‧‧‧交換式除錯器應用程式
240-322、450-460‧‧‧步驟
204-220‧‧‧邏輯
340、380、410、430、470‧‧‧模擬螢幕
342、356、363‧‧‧待決交換
344、350、358、364、386、394‧‧‧原始檔案
346、352、360、366、388、398‧‧‧方法名稱
348、354、362、368‧‧‧基元區塊起始線數目
382‧‧‧特定程式碼段
384、392‧‧‧交換
412‧‧‧執行緒
414‧‧‧原始碼區域
416‧‧‧記憶體
418、420‧‧‧變數之數值
432、436‧‧‧視覺指示
434‧‧‧衝突
472、474、476‧‧‧選項
478‧‧‧條件表示式
第1圖為一概要圖式,闡明本發明一實作所用之電腦系統。
第2圖為一概要圖式,闡明在第1圖之電腦系統上作業之本發明一實作之交換式除錯器應用程式。
第3圖為第1圖之系統的一實作之流程圖,闡明提供除錯器使用者介面給交換式記憶體系統之步驟。
第4圖為第1圖之系統的一實作之流程圖,闡明利用衝突點之步驟,該衝突點位於交換式記憶體系統下執行之特定應用程式作業中之一變數上。
第5圖為第1圖之系統的一實作之流程圖,闡明在交換中利用衝突點以及一交換中原始碼區域之步驟。
第6圖為第1圖之系統的一實作之流程圖,闡明提供一種高度除錯環境以進行交換之步驟。
第7圖為用於第1圖之系統的一實作之流程圖,闡明多重交換之交換狀態。
第8圖為用於第1圖之系統的一實作之模擬螢幕,闡 明特定程式碼段之多重交換狀態。
第9圖為用於第1圖之系統的一實作之模擬螢幕,闡明多執行緒上一特定變數之值。
第10圖為用於第1圖之系統的一實作之模擬螢幕,闡明利用視覺指示以顯示發生於交換間之一衝突之所在。
第11圖為第1圖之系統的一實作之流程圖,闡明允許使用者針對一特定衝突點自訂各種設定之步驟。
第12圖為用於第1圖之系統的一實作之模擬螢幕,闡明允許使用者針對一特定衝突點自訂各種設定。
100‧‧‧運算裝置
102‧‧‧處理單元
104‧‧‧系統記憶體
106‧‧‧虛線
108‧‧‧可移除式儲存裝置
110‧‧‧非可移除式儲存裝置
111‧‧‧輸出裝置
112‧‧‧輸入裝置
114‧‧‧其他通訊連接
115‧‧‧其他電腦/應用程式
200‧‧‧交換式除錯器應用程式

Claims (16)

  1. 一種電腦可讀取儲存媒體,該電腦可讀取儲存媒體具有電腦可執行指令以致使一電腦執行包含下列步驟:提供步驟,提供一交換式除錯器應用程式(transactional debugger application),以用於為在一交換式記憶體系統(transactional memory system)下運作之程式(program)進行除錯;除錯步驟,使用該交換式除錯器應用程式,偵測在一衝突點(conflictpoint)上之一衝突(conflict)的出現,該衝突點係設定於在該交換式記憶體系統下運作之至少一程式中,其中該衝突係介於交換(transactions)間;停止執行步驟,因為該已偵測的衝突,停止在該交換式記憶體系統下運作之該至少一程式的執行;及顯示步驟,顯示關於該已偵測的衝突發生之資訊,其中該已顯示之資訊包含暫時由不同執行緒(thread)所持有之一特定變數的多重並行值(concurrent value)。
  2. 如請求項1所述之電腦可讀取儲存媒體,其中該已顯示之資訊包含關於在該程式中所有待決交換(pending transaction)之細節。
  3. 如請求項1所述之電腦可讀取儲存媒體,其中該已顯示之資訊包含關於一特定程式碼段(code segment)之所有待決交換之細節。
  4. 如請求項1所述之電腦可讀取儲存媒體,其中該已顯示之資訊包含該衝突之一或更多視覺指示符(visual indicator)。
  5. 如請求項1所述之電腦可讀取儲存媒體,其中當偵測到該衝突時,則停止該程式之執行。
  6. 如請求項1所述之電腦可讀取儲存媒體,其中一使用者可指定該衝突點至一交換中之一原始碼區域(region of source code)。
  7. 如請求項1所述之電腦可讀取儲存媒體,其中一使用者可指定該衝突點至該程式中之一特定變數。
  8. 如請求項1所述之電腦可讀取儲存媒體,其中一使用者可自訂該衝突點之設定,該等設定係指定應於何時偵測到該衝突點。
  9. 一種利用程式碼區域上的衝突點進行除錯式交換(debugging transaction)之方法,該方法包含下列步驟:接收步驟,使用一處理單元來接收輸入以指定一衝突點給在一交換式記憶體系統下運作之一特定程式之一交換中之一原始碼區域; 停止執行步驟,當在一除錯模式(debug mode)中運作該特定程式時,若在執行該原始碼區域之交換間出現一衝突時,則使用該處理單元來停止執行,及顯示步驟,顯示關於該衝突之資訊,其中該已顯示之資訊包含暫時由不同執行緒所持有之一特定變數的多重並行值。
  10. 如請求項9所述之方法,其中該原始碼區域為一單線(single line)之程式碼。
  11. 如請求項9所述之方法,其中該原始碼區域包含多線(multiple line)之程式碼。
  12. 如請求項9所述之方法,其中該資訊包含在該衝突中所涉及之每一交換之一交換狀態(transactional state)。
  13. 如請求項9所述之方法,其中該資訊包含在偵測到該衝突時所有待決交換之一交換狀態。
  14. 一種電腦可讀取儲存媒體,該電腦可讀取儲存媒體具有電腦可執行指令以用於致使一電腦執行如請求項9中所述之該等步驟。
  15. 一種利用變數上之衝突點以進行除錯式交換之方法,該 方法包含下列步驟:接收步驟,使用一處理單元來接收輸入以指定一衝突點至在一交換式記憶體系統下運作之一特定應用程式內之一特定變數中;以及停止步驟,當在一除錯模式中運作該特定應用程式時,若針對該特定變數之存取導致一衝突時,則使用該處理單元來停止執行;及顯示步驟,顯示關於該衝突之資訊,其中該已顯示之資訊包含暫時由不同執行緒所持有之一特定變數的多重並行值。
  16. 一種電腦可讀取儲存媒體,該電腦可讀取儲存媒體具有電腦可執行指令,以用於致使一電腦執行如請求項15中所述之該等步驟。
TW097117724A 2007-06-19 2008-05-14 用於進行除錯式交易的方法及電腦可讀取儲存媒體 TWI488120B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/820,284 US8099719B2 (en) 2007-06-19 2007-06-19 Transactional debugger for a transactional memory system and detecting conflicts

Publications (2)

Publication Number Publication Date
TW200903338A TW200903338A (en) 2009-01-16
TWI488120B true TWI488120B (zh) 2015-06-11

Family

ID=40137774

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097117724A TWI488120B (zh) 2007-06-19 2008-05-14 用於進行除錯式交易的方法及電腦可讀取儲存媒體

Country Status (4)

Country Link
US (2) US8099719B2 (zh)
EP (1) EP2171589B1 (zh)
TW (1) TWI488120B (zh)
WO (1) WO2008157085A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI476585B (zh) * 2012-12-27 2015-03-11 Chunghwa Telecom Co Ltd 兩階段式偵測記憶體不當使用之方法與系統
WO2015045612A1 (ja) * 2013-09-25 2015-04-02 日産自動車株式会社 ソフトウェア検査装置、ソフトウェア検査方法、ソフトウェア検査プログラム
CA2830605A1 (en) * 2013-10-22 2015-04-22 Ibm Canada Limited - Ibm Canada Limitee Code versioning for enabling transactional memory region promotion
US9697040B2 (en) * 2014-03-26 2017-07-04 Intel Corporation Software replayer for transactional memory programs
US10007549B2 (en) * 2014-12-23 2018-06-26 Intel Corporation Apparatus and method for a profiler for hardware transactional memory programs
GB2535212B (en) * 2015-02-13 2021-08-04 Advanced Risc Mach Ltd An apparatus and method for controlling debugging of program instructions including a transaction
GB2535213B (en) 2015-02-13 2021-10-06 Advanced Risc Mach Ltd An apparatus and method for controlling debugging of program instructions including a transaction
CN111309627B (zh) * 2020-03-08 2022-11-29 苏州浪潮智能科技有限公司 一种软件测试中防止测试冲突的方法与系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774717A (en) * 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
US6237059B1 (en) * 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
TW200632652A (en) * 2004-09-30 2006-09-16 Intel Corp Transactional memory execution utilizing virtual memory

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157777A (en) 1989-12-22 1992-10-20 Intel Corporation Synchronous communication between execution environments in a data processing system employing an object-oriented memory protection mechanism
GB2239334B (en) 1989-12-22 1994-07-06 Intel Corp Synchronous communication between execution environments in a data processing system employing an object-oriented memory protection mechanism
US5317740A (en) * 1991-03-07 1994-05-31 Digital Equipment Corporation Alternate and iterative analysis of computer programs for locating translatable code by resolving callbacks and other conflicting mutual dependencies
CA2115464C (en) 1994-02-11 1998-12-15 William G. O'farrell Concurrent processing in object oriented parallel and near parallel systems
US6324683B1 (en) * 1996-02-23 2001-11-27 International Business Machines Corporation System, method and program for debugging external programs in client/server-based relational database management systems
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US5854924A (en) * 1996-08-08 1998-12-29 Globetrotter Software, Inc. Static debugging tool and method
US6085035A (en) 1997-09-09 2000-07-04 Sun Microsystems, Inc. Method and apparatus for efficient operations on primary type values without static overloading
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US6138269A (en) 1998-05-20 2000-10-24 Sun Microsystems, Inc. Determining the actual class of an object at run time
US6226787B1 (en) * 1999-01-25 2001-05-01 Hewlett-Packard Company Visualization method and system for dynamically displaying operations of a program
US6954923B1 (en) * 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7013456B1 (en) * 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US6467052B1 (en) * 1999-06-03 2002-10-15 Microsoft Corporation Method and apparatus for analyzing performance of data processing system
US6553384B1 (en) 1999-06-14 2003-04-22 International Business Machines Corporation Transactional name service
US6519766B1 (en) * 1999-06-15 2003-02-11 Isogon Corporation Computer program profiler
US7254806B1 (en) * 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
AU2001259089A1 (en) 2000-04-18 2001-11-07 Sun Microsystems, Inc. Lock-free implementation of concurrent shared object with dynamic node allocation and distinguishing pointer value
US6698013B1 (en) * 2000-10-04 2004-02-24 Mintaka Technology Group Real time monitoring system for tracking and documenting changes made by programmer's during maintenance or development of computer readable code on a line by line basis and/or by point of focus
FR2820254B1 (fr) * 2001-01-31 2003-05-09 Dolphin Integration Sa Division fractionnelle de frequence d'un signal numerique
US6959405B2 (en) 2001-04-18 2005-10-25 Blue Pumpkin Software, Inc. Method and system for concurrent error identification in resource scheduling
US6654760B2 (en) 2001-06-04 2003-11-25 Hewlett-Packard Development Company, L.P. System and method of providing a cache-efficient, hybrid, compressed digital tree with wide dynamic ranges and simple interface requiring no configuration or tuning
US7634252B2 (en) 2003-03-07 2009-12-15 Computer Assocaites Think, Inc. Mobility management in wireless networks
US7316005B2 (en) * 2004-01-26 2008-01-01 Microsoft Corporation Data race detection using sequential program analysis
US7921407B2 (en) * 2004-08-10 2011-04-05 Oracle America, Inc. System and method for supporting multiple alternative methods for executing transactions
US7818723B2 (en) * 2004-09-07 2010-10-19 Sap Ag Antipattern detection processing for a multithreaded application
US7739669B2 (en) * 2005-05-16 2010-06-15 Texas Instruments Incorporated Paced trace transmission
US7770153B2 (en) * 2005-05-20 2010-08-03 Microsoft Corporation Heap-based bug identification using anomaly detection
US7716645B2 (en) * 2005-06-10 2010-05-11 International Business Machines Corporation Using atomic sets of memory locations
US7784035B2 (en) * 2005-07-05 2010-08-24 Nec Laboratories America, Inc. Method for the static analysis of concurrent multi-threaded software
US8079037B2 (en) * 2005-10-11 2011-12-13 Knoa Software, Inc. Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications
US7752605B2 (en) * 2006-04-12 2010-07-06 Microsoft Corporation Precise data-race detection using locksets
EP2033097A2 (en) * 2006-06-05 2009-03-11 Acumem AB System for and method of capturing application characteristics data from a computer system and modeling target system
US7840947B2 (en) * 2006-06-09 2010-11-23 Oracle America, Inc. Delayed breakpoints
US7849446B2 (en) * 2006-06-09 2010-12-07 Oracle America, Inc. Replay debugging
US8307346B2 (en) * 2006-06-09 2012-11-06 Oracle America, Inc. Atomic groups for debugging
US8443341B2 (en) * 2006-11-09 2013-05-14 Rogue Wave Software, Inc. System for and method of capturing application characteristics data from a computer system and modeling target system
US8001539B2 (en) * 2007-02-28 2011-08-16 Jds Uniphase Corporation Historical data management
US8166459B2 (en) * 2008-02-27 2012-04-24 Sap Ag Apparatus and method of generating self-debugging computer software
US8473921B2 (en) * 2009-12-15 2013-06-25 Microsoft Corporation Debugging mechanisms in a cache-based memory isolation system
US8453120B2 (en) * 2010-05-11 2013-05-28 F5 Networks, Inc. Enhanced reliability using deterministic multiprocessing-based synchronized replication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774717A (en) * 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
US6237059B1 (en) * 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
TW200632652A (en) * 2004-09-30 2006-09-16 Intel Corp Transactional memory execution utilizing virtual memory

Also Published As

Publication number Publication date
US20120084760A1 (en) 2012-04-05
WO2008157085A2 (en) 2008-12-24
EP2171589B1 (en) 2019-10-16
US20080320334A1 (en) 2008-12-25
WO2008157085A3 (en) 2009-02-12
EP2171589A2 (en) 2010-04-07
US8099719B2 (en) 2012-01-17
EP2171589A4 (en) 2012-09-19
TW200903338A (en) 2009-01-16
US8650551B2 (en) 2014-02-11

Similar Documents

Publication Publication Date Title
TWI488120B (zh) 用於進行除錯式交易的方法及電腦可讀取儲存媒體
US10698726B2 (en) Techniques for switching threads within routes
US5961610A (en) Systems, methods and apparatus for generating and controlling display of medical images
EP2176763B1 (en) Memory transaction grouping
US5950002A (en) Learn mode script generation in a medical imaging system
US8336032B2 (en) Implementing enhanced template debug
US20080066055A1 (en) Reversing execution of instructions in a debugger
US6707469B1 (en) Synchronous execution in a medical imaging system
US5831612A (en) Cell overlap detection and correction in a medical imaging system
US20120102469A1 (en) Deterministic application breakpoint halting by logically relating breakpoints in a graph
TWI786181B (zh) 在例外遮罩更新指令之後允許未中止的交易處理
JP5421228B2 (ja) 仮想タスクを使用した関係可視化のためのプログラム、装置およびその方法
Kiessling An introduction to parallel programming with OpenMP
TW201931108A (zh) 支援多執行緒/並行程式除錯之方法、電腦可讀取之記錄媒體及電腦程式產品
US8196123B2 (en) Object model for transactional memory
KR102597201B1 (ko) 트랜잭션 네스팅 심도 시험 명령
JP4997144B2 (ja) マルチタスク処理装置およびその方法
US7434039B2 (en) Computer processor capable of responding with comparable efficiency to both software-state-independent and state-dependent events
CA3070387A1 (en) Focused execution of traced code in a debugger
JP2011107937A (ja) 実行状況確認装置、実行状況確認方法および実行状況確認プログラム
Itterheim Debugging & Best Practices
Desjardins Debugging
JP2003085002A (ja) 計算機シミュレーションプログラム

Legal Events

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