IP Library Granted Patent US 8,099,719
Granted Patent B2
US 8,099,719 · App. 11/820,284 · Granted Jan 17, 2012

Transactional debugger for a transactional memory system and detecting conflicts

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,099,719
App. No.
11/820,284
Granted
Jan 17, 2012
Kind
B2
Abstract

Various technologies and techniques are disclosed for providing a debugger for programs running under a transactional memory system. When running a particular program using the debugger, the system detects when a conflict occurs on at least one conflictpoint that was set in the particular program. A graphical user interface is provided that displays information related to the detected conflict. The graphical user interface can display transactional state and/or other details independently of a conflict. A conflictpoint can be assigned to one or more regions of source code in one or more transactions in the particular program. A conflictpoint can also be assigned to a particular variable in the particular program. When running the particular program in a debug mode, execution is stopped if a conflict occurs on any of the conflictpoints.

Claims (26)

1. A computer storage medium having computer-executable instructions for causing a computer to perform steps comprising:

providing a transactional debugger application for debugging programs running under a transactional memory system;

using the transactional debugger application, detecting an occurrence of conflict on a conflictpoint set in at least one program running under the transactional memory system, wherein the conflict is between transactions;

because of the detected conflict, stopping execution of the at least one program running under the transactional memory system; and

displaying information related to the detected conflict occurrence, wherein the information displayed includes multiple concurrent values of a particular variable that are tentatively held by different threads.

2. The computer storage medium of claim 1 , wherein the information displayed includes details about all pending transactions in the program.

3. The computer storage medium of claim 1 , wherein the information displayed includes details about all pending transactions for a particular code segment.

4. The computer storage medium of claim 1 , wherein the information displayed includes one or more visual indicators of the conflict.

5. The computer storage medium of claim 1 , wherein execution of the program is stopped when the conflict is detected.

6. The computer storage medium of claim 1 , wherein a user can assign the conflictpoint to a region of source code in a transaction.

7. The computer storage medium of claim 1 , wherein a user can assign the conflictpoint to a particular variable in the program.

8. The computer storage medium of claim 1 , wherein a user can customize settings for the conflictpoint that specify when the conflictpoint should be detected.

9. A method for debugging transactions using conflictpoints on regions of code comprising the steps of:

using a processing unit, receiving input to assign a conflictpoint to a region of source code in a transaction in a particular program that runs under a transactional memory system;

when running the particular program in a debug mode, using the processing unit, stopping execution if a conflict occurs between transactions that are executing the region of source code; and

displaying information related to the conflict, wherein the information displayed includes multiple concurrent values of a particular variable that are tentatively held by different threads.

10. The method of claim 9 , wherein the region of code is a single line of code.

11. The method of claim 9 , wherein the region of code includes multiple lines of code.

12. The method of claim 9 , wherein the information includes a transactional state of each transaction involved in the conflict.

13. The method of claim 9 , wherein the transactional information includes a transactional state for all transactions pending at a time the conflict was detected.

14. A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 9 .

15. A method for debugging transactions using conflictpoints on variables comprising the steps of:

using a processing unit, receiving input to assign a conflictpoint to a particular variable in a particular program that runs under a transactional memory system; and

when running the particular program in a debug mode, using the processing unit, stopping execution if accesses to the particular variable induce a conflict; and

displaying information related to the conflict, wherein the information displayed includes multiple concurrent values of a particular variable that are tentatively held by different threads.

16. A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 15 .

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2016
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ZHIGU HOLDINGS LIMITED
Reel/Frame 040354/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2007
From: TAILLEFER, MARTIN
To: MICROSOFT CORPORATION
Reel/Frame 019776/0448 →
Continuity (1)
Related Publication 20080320334A1 · Dec 25, 2008