TW200903338A - Transactional debugger for a transactional memory system - Google Patents
Transactional debugger for a transactional memory system Download PDFInfo
- Publication number
- TW200903338A TW200903338A TW097117724A TW97117724A TW200903338A TW 200903338 A TW200903338 A TW 200903338A TW 097117724 A TW097117724 A TW 097117724A TW 97117724 A TW97117724 A TW 97117724A TW 200903338 A TW200903338 A TW 200903338A
- Authority
- TW
- Taiwan
- Prior art keywords
- conflict
- point
- application
- readable medium
- computer readable
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments 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
200903338 九、發明說明: 【發明所屬之枯ife· A-
【先前技術】 隨著科技的進展^ 備更多的處理能力Μ 腦科技的發展趨勢£ 展’電腦的功能已經越來越強大,且具 以及記憶體以處理進階作業。近來,電 已經從不斷提高單一處理器之時脈速 度,轉為增加軍一Φ m 早 電腦中可用之處理器數目。軟體開發者
開發者必須排列欲「 £到上述目的,必須採用不同的策略: 並行」(有時稱為「平行」)執行之特 定軟體應用程式的一或更多任務(task)安排,而使得相同的 邏輯作業可同時利用多個處理器,且當將更多處理器加入 執行該軟體之電腦中時,可提供更佳的效能。 父換式6己憶體(transactional memory, TM)之設計理念 係在於協助並行應用程式(e〇ncurrent pr〇gram)之開發,其 可對應用程式碼之區域提供不可分割性(at〇rnicity)以及獨 立丨生 交換式記憶體是一種並行控制·機制(concurrent control mechanism),其類似資料庫交換(database transaction) ’可用以控制對於並行運算之共享記憶體的存 取。在父換式s己憶體的架構中,交換(t r a n s a c t i 〇 η)係指一段 程式碼’用來對共享記憶體執行一系列的讀取以及寫入。
200903338 Τ Μ可作為傳統鎖定機制的一種替代方案。Τ Μ使得可 應用程式更容易被寫入。交換可明確規定出認定將執 一系列程式碼,其執行方式應如同獨立執行一般。欲 此種獨立執行的假象,可藉由對物件進行精細鎖定, 在一種特殊模式中執行,上述模式係指當發現一交換 些其他交換衝突時,允許返回該交換之效果。若一資 存取受到上述鎖定及返回機制之保護,則該資料存取 換式」資料存取。 當部署交換式記憶體程式設計模型時,程式設計 遇到利用交換所產生之效能問題。交換的語意會使得 碼系列彼此衝突,而導致必須重新執行程式碼系列, 決衝突。上述重新執行程式碼的動作會傷害關於較低 縮性(scalability)及較高消耗能量的效能,且必須被 化。換句話說,設計軟體時,必須考量到將交換式 (transactional conflict)之出現降至最低。然而,問題在 既有的除錯系統並未支援記憶體交換之輕易診斷、發 修正效能及正確性之能力。 【發明内容】 提出一種除錯器之科技及技術,該除錯器可用於 換式記憶體系統下執行之應用程式。當執行利用除錯器 定應用程式時,系統可偵測在該特定應用程式中所設定 少一衝突點上,何時出現一衝突。提供圖形使用者介面 可顯示與偵測到之衝突相關的資訊,例如待決交換之 並行 行之 達成 以及 和某 料之 b「交 者會 程式 以解 可擴 最小 衝突 .於, 現、 在交 之特 之至 ,其 交換 6 200903338 狀態。圖形使用者介面可 „ 賴不父換狀態和/或與衝突無關 其他細郎。可將衝突點指 至特疋應用程式中一或更多交
内之原始碼的一或更多F °°域。亦可將衝突點指定至特定應 ^ ^ 、錯模式中執行特定應用程式時 右在任何衝突點出現衝突 犬 洗會停止執行。 發明内容以簡化之形式人 A 71、、·〇實施方式中詳述之本發 的概念。發明内容之本青 、 本意並非扣明申請專利範圍標的之 要或關鍵特徵,亦不庫蔣夕田、上 應'將之用以限定申請專利範圍標的 範圍。 【實施方式] 為讓本發明之原理能更明顯易懂,下文特舉本發明 實施例並參照附隨圖式’詳細說明之。然而,當可理解 其本意並非用意限制本發明之範圍。針對此處所述具體 施例之任何修改及修飾,皆屬本發明所屬技術領域中具 通常知識者可想見之範圍。 此處以除錯器(debugger)之一般脈絡來描述本發明 施例所用之系統,上述除錯器可用於在交換式記憶體系 (transactional memory system)下作業之應用程式中之 換(transaction),但上述系統亦可做為其他用途。在本發 一實作中,此處所述之一或更多種技術可實作成一軟體 發應用程式如 MICROSOFT® VISUAL STUDIO®中之 能,或來自任何其他類型之應用程式或服務(可允許在交 式記憶體系統下作業之應用程式中的交換進行除錯)。 之 換 用 明 主 之 之 實 有 實 統 交 明 開 功 換 7 200903338 如第1圖所示,用以實作本發明實施例系統之一或更 多部分之一示範性電腦系統包含一運算裝£,例如運算敦 置100。運算裝置100最基本的紐4 ^ 日]組態通常包括至少一處理 單元1 02及記憶體1 04。根據運曾 ,气也 撕逆鼻裝置1〇〇之實際組瘧及 種類,記憶體1 04可為揮發性(例 ^ ^ 、例如RAM )、非揮發性(例 如ROM、快閃記憶體等)、或二去& ^ ^ —者的某種組合。第1圖中 以虛線106標示上述最基本之組離。 除此之外,運算裝置100亦疋θ ^ 71 了具有額外的特徵/功能。 舉例而言,運算裝置100亦可句& a含額外的儲存裝置(可移
除式和/或非可移除式),包括伯T 但不限於,磁碟片、磁帶、 或光碟片。第1圖中’以可移险4 &式儲存裝置108及非可移 除式儲存裝置110來表示此類的4 *貝的額外儲存裝置。電腦儲存 媒體包括以任何方法或技術眘徒 汽可用以儲存資訊(例如電 腦可讀取指令、資料結構、程 &权組或其他資料)之揮發性 及非揮發性記憶體、可移除;3非 f'及非可移除媒體。記憶體104、 可移除式儲存裝置108、及韭π必 ί L + ^ ’可移除式儲存裝置Π0皆為 上述電腦儲存媒體之實施例。 電腦儲存媒體包括但不限於 RAM、ROM、EEPROM、悱 ^ ^ D_._ 、4 6己憶體或其他記憶體技術、 CD-ROM、數位多功能影 讨抽 ^ 日先碟(DVD)或其他光學儲存 媒體、磁匣、磁帶、磁碟 存或其他磁性儲存裝置、或能 夠用以儲存所需資訊且可 '、電腦糸統存取之任何其他媒 體。任何上述電腦儲存媒體 了作為裝置100的一部份。 運算裝置1〇〇亦可含右—# 或夕個通訊連接114,其可 允許運鼻裝置100和其他雷 、 電膝/應用程式Π5進行通訊。運
200903338 算裝置10 0亦可具有輸入裝置(們)1 1 2,例如鍵i 筆、語音輸入裝置、觸控輸入裝置、相機等等; 輸出裝置(們)111,例如顯示器、擴音器、印表 述裝置皆為相關領域所熟知,不需於此處贅述。 一實作中,運算裝置100包含交換式除錯器, (transactional debugger application)200。第 2 圖 換式除錯器應用程式200。 參照第2圖並連同第1圖,闡明於運算裝置 業之交換式除錯器應用程式 200。交換式除錯器 200是常駐於運算裝置100上之應用程式之一者 吾人可以理解到,交換式除錯器應用程式2 0 0可 替代地具體實作成為一或更多電腦上之電腦可執 /或具體實作於和第1圖所示系統之不同的變化开) 者是或除此之外,交換式除錯器應用程式200之 部分可以是系統記憶體 1 〇 4之部分、可位於其4 或應用程式1 1 5上、或電腦軟體相關領域中可用 類變化形式。 交換式除錯器應用程式200包含應用程式邏 其可負責進行此處所述之某些或所有技術。應用 2 04包含邏輯206(可用以提供交換式除錯器應用 交換式記憶體系統下執行之除錯應用程式)、邏4 用以接收來自使用者之輸入,或可利用其他方式 換式記憶體系統下執行之特定應用程式指定一或 突點)、邏輯 2 1 0 (可用以在除錯模式中執行特 I、滑鼠、 亦可包括 機等。上 在本發明 應用程式 將詳述交 1 0 0上作 應用程式 。然而, 額外地或 行指令和 i式中。或 一或更多 也電腦和/ 之其他此 輯 204, 程式邏輯 程式給在 茸 208(可 針對在交 更多種衝 定應用程 9 200903338 Γ 式)、邏輯212(可用以偵測何時在一衝突鞑出現衝突,且 之後停止應用程式之執行)、邏輯214(可用以提供圖形使 用者介面其可顯示交換狀態、變數、和/或與衝突相關之其 他資訊)、邏輯2 1 6 (可用以選擇性地允許使用者針對一或 更多種衝突點自訂各種設定’以規定應柃何時偵測到衝 突)、及其他邏輯220(可用以操作應用程式)。在本發明一 實作中,可由另一應用程式以程式方式來呼叫應用程式邏 輯204,例如利用單一呼叫(single call)來呼叫對應用程式 邏輯204中之一程序(procedure)。 參照第3至6圖’並連同第1至2圖,進一步詳述用 以實作交換式除錯器應用程式2 00之一或更多種實作的步 驟《第3圖閣明在本發明一實作中,提供除錯器使用者介 面(debugger user interface)給交換式記憶體系統之步驟。 在一實施例中’第3圖的流程至少有部分實作在運算裝置 1 00之作業邏輯中。本流程由起始點24〇開始提供一交 換式除錯器應用程式(步驟242)。系統接收輪入(例如,來 自使用者的選擇、命令行、腳本等)以指定_或更多衝突點 (conflictpoint)給在交換式首?梅脚么" 八匕體系統下作業之特定應用 程式(步驟244)。系統在除錯模式(debug爪“幻中執行該特 定應用程式(步驟246),偵測-衝突(conflict)何時發生於 一執行緒(thread)中的衝突點上,以及停止執行(步驟 248)。當偵測到衝突時,將該特定應用程式之交換狀態 (transactional state)和 /或除錯資訊(debugging inf〇rmati〇n) 顯不於交換式除錯器之一使用者介面中(步驟25〇)。使用 10
200903338 者介面可額外地或替代地顯示該特定應用程式中與 之特定衝突無關之交換狀態、變數值、和/或其他 訊。本流程於終點2 5 2結束。 參照第4及第5圖,描述關於指定及利用衝突 施例。雖然第4及第5圖個別討論關於一單一衝突 定,但可隨著使用者之除錯需求而指定一或更多類 或更多衝突點。第4及第5圖僅在於表示關於指定 一單一衝突點典型之一簡單的流程。 第4圖闡明在本發明一實作中利用衝突點之步 衝突點位於交換式記憶體系統下執行之特定應用程 中之一變數上。在一實施例中,第4圖的流程至少 實作在運算裝置1 00之作業邏輯中。本流程由起始 開始,接收輸入以指定一衝突點給在交換式記憶體 執行之特定應用程式作業中之特定變數(步驟272) 在除錯模式中執行該特定應用程式(步驟274),且 該特定變數而產生衝突時,停止執行該特定應用程5 27 6)。本流程在終點278結束。 第5圖闡明在本發明一實作中在一交換内利用 以及一原始碼(source code)區域之步驟。在一實施 第5圖的流程至少有部分實作在運算裝置1 0 0之作 中。本流程由起始點290開始,接收輸入以指定一 至交換式記憶體系統下執行之特定應用程式作業中 之一原始碼區域(步驟 2 9 2)。系統在除錯模式中執 定應用程式(步驟 294),且若在執行相同原始碼區 偵測到 除錯資 點之實 點的指 型之一 及利用 驟,該 式作業 有部分 點2 70 系統下 。系統 若存取 ((步驟 衝突點 例中, 業邏輯 衝突點 之交換 行該特 域之該 200903338 等交換間出現衝突時,停止執行該特定應用程式(步驟 2 9 6)。本流程在終點2 9 8結束。
第6圖闡明在本發明一實作中提供一種高度除錯環境 以進行該等交換之步驟。應注意,雖然第6圖描述可用於 除錯器中之各種功能,本實施例並不限定特定步驟順序。 在一實施例中,第6圖的流程至少有部分實作在運算裝置 1 0 0之作業邏輯中。本流程由起始點3 1 0開始,提供一除 錯器介面給在交換式記憶體系統下執行之該等除錯應用程 式(步驟3 1 2)。系統可選擇性地顯示關於所有待決交換之 細節,不論其係在何執行緒上執行(步驟 3 1 4)。系統可選 擇性地顯示關於一特定程式碼段之所有待決交換的細節 (步驟 3 1 6)。系統可選擇性地在不同執行緒上顯示一特定 變數之數值(步驟 3 1 8)。系統可選擇性地以色彩或其他視 覺指示來顯示衝突(步驟320)。在其他實作中,可由圖形 使用者介面來提供部分、所有上述功能和/或額外功能。本 流程在終點3 2 2結束。 參照第7至1 0圖,繪示某些模擬螢幕以闡明可利用交 換式除錯器應用程式2 0 0檢視之與交換相關的各種類型之 資訊。這些螢幕可顯示於使用者之輸出裝置(們)111上。 此外,這些螢幕可由輸入裝置(們)Π 2接收來自使用者 之輸入。可以理解,這些螢幕僅為交換狀態、變數資訊和/ 或可供顯示以用於交換之其他相關除錯細節的例示,而非 列舉。在其他實作中,亦可運用各種其他資訊細節和/或使 用者介面設計。 12 200903338 第7圖為用於本發明一實作中之模擬螢幕340,其可 指示在出現衝突點時,所有待決交換(pending transaction) 之交換狀態(transactional state)。在所示之假設實施例 中,有三個待決的交換(分別為342' 356及363)。對於每 一交換,顯示與原始檔案344、方法名稱346及基元區塊 起始線(atomic block starting line)數目348相關之細節。 舉例而言,對於第一交換342,顯示與交換中每一巢狀下 代(nested children)相關之原始檔案,連同其個別分法名稱 及基元區塊起始線數目。當衝突出現時,正在執行之巢狀 下代位於名稱為 d. c s之原始檔案3 5 0中,其係和稱為 「Example」352之方法相關,且該方法由基元區塊線數目 8(354)開始。對於第二交換356,當衝突出現時,稱為a.cs 之原始檔案358正在執行方法「foo」360且由基元區塊線 數目1 2 (3 6 2)開始。在衝突偵測時,第三交換正在執行稱 為「another one」之方法 366,其基元區塊起始線為 25(368),原始槽案364名稱為h.cs。堆於所有目前待決交 換之此交換狀態及其他資訊可協助使用者決定為什麼在交 換中會出現效能和/或其他問題。 第8圖為用於本發明一實作中之模擬螢幕3 8〇,其可 指示一特定程式碼段之多交換的狀態。第8圖之實施例與 第7圖類似,一不同之處在於,本實施例中僅顯示一特定 程式碼段之待決交換。可選擇性地將特定程式瑪段3 8 2本 身顯示於螢幕上以供使用者參考。第一交換384有一巢狀 子代’當偵測到衝突時,其正在執行原始檔案b.CS(3 86) 13
200903338 中之方法bar(3 8 8)。第二交換3 92有一巢狀子代,當 到衝突時,其正在執行原始檔案 c.cs(3 94)中之 db(398) ° 第9圖為用於本發明一實作中之模擬螢幕410, 在多執行緒上指示一特定變數之數值。所顯示之特定 具有經指定之衝突點,且該衝突點在各執行緒間發 突。顯示目前每一待決執行緒上該特定變數的每一 (418及42 0)與在同一時刻記憶體416中該變數之實襄 選擇性地,可在此螢幕或其他螢幕上之原始碼區域4 顯示所選執行緒4 1 2之原始碼。 第10圖為用於本發明一實作中之模擬螢幕430, 闡明利用視覺指示以顯示在交換間之何處發生衝突。 示之假設實施例中,已經在一特定變數衝突點出現 突。因此,可利用視覺指示432來顯示引發該衝突之 緒以及該執行緒中目前的變數值。亦可利用視覺指示 來顯示另一執行緒之變數值,以便指明衝突4 3 4的存 在本發明一實作中,使用者可點擊一特定變數(432或 以檢視與該變數、交換狀態等相關之額外細節。可利 種其他類型之視覺指示符(v i s u a 1 i n d i c a t 〇 r),以指明已 指定給特定變數之一衝突點上和/或原始碼區域中偵 衝突。 第11圖闡明在本發明一實作中,允許使用者自訂 一特定衝突點之各種設定的步驟。在一實施例中,1 圖的流程至少有部分實作在運算裝置1 0 0之作業邏輯 偵測 方法 其可 變數 生衝 數值 值。 ί 4中 其可 在所 一衝 執行 436 在。 43 6) 用各 經在 測到 關於 ^ 11 中 〇 14
200903338 本流程由起始點4 5 0開始,接收來自使用者之輸入以指 一衝突點給在交換式記憶體系統下作業之特定應用程 (步驟 4 5 2)。系統接收來自使用者之輸入以自訂對該衝 點之設定,該設定可規定何時應偵測到衝突(步驟 4 5 4) 系統儲存自訂之設定(步驟 4 5 6)。當在除錯模式中執行 定應用程式時,系統可利用衝突點(們)之自訂設定以 定何時出現衝突(步驟4 5 8)。本流程在終點4 6 0結束。 第12圖為用於本發明一實作中之模擬螢幕470,其 闡明允許使用者自訂關於一特定衝突點之各種設定。在 示實施例中,有四個不同的示範性選項,可供使用者針 特定衝突點來選擇。第一選項472允許使用者規定在停 執行之前必須出現多少個衝突。第二選項4 74允許使用 指出當特定執行緒相對於任何執行緒出現衝突時,僅會 止該特定執行緒。亦可利用第三選項4 7 6規定應停止執 之衝突類型,例如讀取衝突、寫入衝突、或讀取及寫入 突二者。可規定條件表式式(conditional expression)478 若表式為真則該條件表式式4 7 8可讓執行停止。雖然第 圖中顯示4個例示,在其他實作中,可利用部分、所有 述衝突點設和/或額外衝突點設定。 雖然上文以專屬於結構功能和/或方法步驟之語言 揭露本發明,然其並非用以將本發明限定於所述之特定 能及步驟。更確切地說,上述特定功能直步驟僅為實作 請專利範圍之實施例。因此本發明之保護範圍當視後附 申請專利範圍所界定者為準,且所有屬於其精神之等 定 式 突 〇 特 決 可 所 對 止 者 停 行 衝 » 12 上 來 功 中 之 價 15 200903338 物、改變及修改,皆屬本發明之保護範圍。 舉例而言,電腦軟體領域中具有通常知識者當可理 解,能夠以不同方式來組織本說明書實施例中所述之用戶 端和/或伺服器配置、使用者介面螢幕内容和/或資料布 置,例如利用一或更多種電腦,上述電腦可包含較少或較 多之選項或功能。 【圖式簡單說明】 第1圖為一概要圖式,闡明本發明一實作所用之電腦 糸統。 第2圖為一概要圖式,闡明在第1圖之電腦系統上作 業之本發明一實作之交換式除錯器應用程式。 第3圖為第1圖之系統的一實作之流程圖,闡明提供 除錯器使用者介面給交換式記憶體系統之步驟。 第4圖為第1圖之系統的一實作之流程圖,闡明利用 利用衝突點之步驟,該衝突點位於交換式記憶體系統下執 行之特定應用程式作業中之一變數上。 第5圖為第1圖之系統的一實作之流程圖,闡明在交 換中利用衝突點以及一交換中原始碼區域之步驟。 第6圖為第1圖之系統的一實作之流程圖,闡明提供 一種高度除錯環境以進行交換之步驟。 第7圖為第1圖之系統的一實作之流程圖,闡明多重 交換之交換狀態。 第8圖為用於第1圖之系統的一實作之模擬螢幕,闡 16 200903338 明特定程式碼段之多重交換狀態。 第9圖為用於第1圖之系統的一實作之模擬螢幕,闡 明多執行緒上一特定變數之值。 第10圖為用於第1圖之系統的一實作之模擬螢幕,闡 明利用視覺指示以顯示發生於間換間之一衝突之所在。 第11圖為第1圖之系統的一實作之流程圖,闡明允許 使用者針對一特定衝突點自訂各種設定之步驟。
第12圖為用於第1圖之系統的一實作之模擬螢幕,闡 明允許使用者針對一特定衝突點自訂各種設定。 【主要元件符號說明】 100 運 算 裝 置 102 處 理 一 早7G 104 系 統 記 憶 體 106 虛 線 108 可 移 除 式 儲 存裝 置 110 非 可 移除式儲存裝置 111 輸 出 裝 置 112 輸 入 裝置 114 其 他 通 訊 連 接 115 其 他 電腦/應 用程式 200 交 換 式 除 錯 器應 用程式 200- 322 、 ί 450-460 步驟 340、 3 80 >4 10 、 43 0 ' • 470 模擬 勞幕 342、 356、 363 待決交換 344、 350、 358、 364、 386、 394 原始檔案 346、 352 ' 360、 366、 388、 398 方法名稱 348、354、362、368 基元區塊起始線數目 382 特定程式碼段 384 ' 392 交換 412 執行緒 4 14 原始碼區域 17 200903338 416 記憶體 418、420 變數之數值 432、436 視覺指示 434 衝突 472、474、476 選項 478 條件表式式 (:
18
Claims (1)
- 200903338 十、申請專利範圍: 1. 一種電腦可讀取媒體其具有電腦可執行指令可^ 腦執行包含下列步驟: 偵測至少一衝突點(conflictpoint)上之衝突 (conflict)的出現’其中該衝突點係設定於一交招 體系統(transactional memory system)下執行之多 應用程式t ;以及 顯示關於偵測到之該衝突之一資訊。 2. 如請求項1所述之電腦可讀取媒體,其中所顯示 訊包含該應用程式中所有待決交換(pending transaction)相關之細節。 3. 如請求項丨所述之電腦可讀取媒體,其中所顯示 Λ匕含特疋程式碼段(code segment)之所有待 相關之細節。 4. 如凊求項丨所述之電腦可讀取媒體,其中所顯示 訊包含暫時由不同執行緒(thread)持有之一特定 多重並行值(coneurrent value)。 5 ·如凊求項1所述之電腦可讀取媒體,其中所顯示 3 或更多視覺指示符(visual indicator)以 衝突。 一電 式記憶 少一 之該資 之該資 決交換 之該資 變數的 之該資 表明該 19 200903338 6. 如請求項1所述之電腦可讀取媒體,其中當偵測到該衝 突時停止該應用程式之執行。 7. 如請求項1所述之電腦可讀取媒體,其中一使用者可指 定該衝突點至一交換(transaction)中之一原始碼區域。 8. 如請求項1所述之電腦可讀取媒體,其中一使用者可指 定該衝突點至該應用程式中之一特定變數。 9. 如請求項1所述之電腦可讀取媒體,其中一使用者可自 訂該衝突點之至少一設定,該設定可規定應於何時偵測 到該衝突點。 1 0. —種用以利用程式碼區域上的衝突點進行除錯式交換 (debugging transaction)之方法,包含下列步驟: 接收輸入以指定一衝突點給一交換式記憶體系統 下執行之一特定應用程式之一交換中之一原始碼區 域;以及 當在一除錯模式(debug mode)中執行該特定應用 程式時,若在執行該原始碼區域之交換間出現一衝突 時,則停止執行。 1 1 .如請求項1 0所述之方法,其中該程式碼區域為一單線 20 200903338 (single line)之程式碼。 1 2 .如請求項1 0所述之方法,其中該程式碼區域為多線 (multiple line)之程式碼。 1 3 .如請求項1 0所述之方法,另包含: 顯示與該衝突相關之一資訊。 1 4.如請求項1 3所述之方法,其中該資訊包含該衝突中所涉 及之每一交換之一交換狀態(transactional state)。 1 5.如請求項1 0所述之方法,其中該交換式資訊包含在偵測 到該衝突時所有待決交換之一交換狀態。 1 6. —種電腦可讀取媒體,其具有電腦可執行指令可使一電 腦執行如請求項1 0所述之方法。 17.—種利用變數上之衝突點以進行除錯式交換之方法,包 含下列步驟: 接收輸入以指定一衝突點至一交換式記憶體系統 下執行之一特定應用程式内之一特定變數中;以及 當在一除錯模式中執行該特定應用程式時,若該特 定變數之存取導致一衝突時,則停止執行。 21 200903338 18.如請求項17所述之方法,另包含: 顯示與該衝突相關之一資訊。 1 9.如請求項1 8所述之方法,其中該資訊包含跨執行緒之該 特定變數之一數值。 20. —種電腦可讀取媒體,其具有電腦可執行指令,可使一 電腦執行如請求項1 7所述之方法。
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 true TW200903338A (en) | 2009-01-16 |
| TWI488120B 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) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI476585B (zh) * | 2012-12-27 | 2015-03-11 | Chunghwa Telecom Co Ltd | 兩階段式偵測記憶體不當使用之方法與系統 |
| CN104572260A (zh) * | 2013-10-22 | 2015-04-29 | 国际商业机器公司 | 用于实现事务内存区域提升的代码版本控制的方法和设备 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015045612A1 (ja) * | 2013-09-25 | 2015-04-02 | 日産自動車株式会社 | ソフトウェア検査装置、ソフトウェア検査方法、ソフトウェア検査プログラム |
| 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 | 苏州浪潮智能科技有限公司 | 一种软件测试中防止测试冲突的方法与系统 |
Family Cites Families (44)
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| US7685365B2 (en) * | 2004-09-30 | 2010-03-23 | Intel Corporation | Transactional memory execution utilizing virtual memory |
| 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 |
-
2007
- 2007-06-19 US US11/820,284 patent/US8099719B2/en active Active
-
2008
- 2008-05-14 TW TW097117724A patent/TWI488120B/zh not_active IP Right Cessation
- 2008-06-06 WO PCT/US2008/066118 patent/WO2008157085A2/en not_active Ceased
- 2008-06-06 EP EP08770335.1A patent/EP2171589B1/en active Active
-
2011
- 2011-12-13 US US13/323,921 patent/US8650551B2/en active Active
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI476585B (zh) * | 2012-12-27 | 2015-03-11 | Chunghwa Telecom Co Ltd | 兩階段式偵測記憶體不當使用之方法與系統 |
| CN104572260A (zh) * | 2013-10-22 | 2015-04-29 | 国际商业机器公司 | 用于实现事务内存区域提升的代码版本控制的方法和设备 |
| CN104572260B (zh) * | 2013-10-22 | 2018-05-18 | 格芯公司 | 用于实现事务内存区域提升的代码版本控制的方法和设备 |
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 |
| TWI488120B (zh) | 2015-06-11 |
| EP2171589A2 (en) | 2010-04-07 |
| US8099719B2 (en) | 2012-01-17 |
| EP2171589A4 (en) | 2012-09-19 |
| US8650551B2 (en) | 2014-02-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8239838B2 (en) | Kernel-aware debugging system, medium, and method | |
| JP6086230B2 (ja) | 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法 | |
| TW200903338A (en) | Transactional debugger for a transactional memory system | |
| EP3123316B1 (en) | Supporting dynamic behavior in statically compiled programs | |
| JP5329983B2 (ja) | デバッグ支援装置 | |
| US9292270B2 (en) | Supporting dynamic behavior in statically compiled programs | |
| CN101667154A (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
| US20110173503A1 (en) | Hardware enabled performance counters with support for operating system context switching | |
| CN112882701A (zh) | 一种支持多架构的可执行文件静态插桩技术框架 | |
| CN101425052B (zh) | 一种事务性内存的实现方法 | |
| JP2009175960A (ja) | 仮想マルチプロセッサシステム | |
| US9038077B1 (en) | Data transfer protection in a multi-tasking modeling environment | |
| JP4997144B2 (ja) | マルチタスク処理装置およびその方法 | |
| JP2004021907A (ja) | 性能評価用シミュレーションシステム | |
| JP2011203803A (ja) | デバッグ支援装置及びデバッグ支援用プログラム | |
| JP2009223841A (ja) | 命令ログ取得プログラム及び仮想計算機システム | |
| JP2002366378A (ja) | プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体 | |
| JP2004206699A (ja) | シミュレーション装置、シミュレーション方法及びプログラム | |
| JP5121134B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
| JP5467172B1 (ja) | 情報処理システム、および情報処理方法 | |
| CN115936631A (zh) | 项目管理方法及装置 | |
| Redegeld | Formal verification of control software in X-Ray systems | |
| Orwick et al. | Developing Drivers with the Windows Driver Foundation: Dev Driver Win Driver Fou_p1 | |
| Lutz et al. | Performance analysis for chipsets and systems | |
| Paire | Embedded Software Development: Through The TLM Approach |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |