Patent ID: 9262302
Filing Date: 2016-02-16
CPC Classification: G06F

Claim Text:
1. A method comprising: halting execution of a first thread of a plurality of threads of a program while one or more other threads of said plurality of threads of said program continue to execute, each thread of said plurality of threads concurrently executing in a computer system; while the execution of said first thread is halted while one or more other threads of said plurality of threads of said program continue to execute, displaying a user interface for said first thread using said computer system, said user interface including at least one variable of said program; while the execution of said first thread is halted while one or more other threads of said plurality of threads of said program continue to execute, determining a set of at least one variable of said program displayable in said user interface, and responsive thereto, establishing an address watch on each memory address represented by a variable of said set of at least one variable of said program, including a first memory address represented by a first variable in sad program; in response to a second thread of said plurality of threads modifying memory contents at the first memory address while execution of said first thread is halted while one or more other threads of said plurality of threads of said program continue to execute, the second thread being among said one or more other threads of said plurality of threads of said program which continue to execute, encountering the address watch corresponding to said first memory address and, responsive to the encountered address watch, halting the second thread and determining whether said first variable is displayed on said user interface for the first thread; if responsive to determining that said first variable is displayed on the user interface for the first thread, reading the value of the first variable and displaying the value for the first variable as modified by the second thread on the user interface for the first thread; if responsive to determining that said first variable is not displayed on the user interface for the first thread, resuming execution of the second thread without reading the value of the first variable, without giving control to a user interface of the second thread, and without displaying the value for the first variable on the user interface for the first thread; and wherein while execution of the first thread is halted, in response to detecting that a second variable that was previously displayed on said user interface for said first thread is currently not displayed on said user interface for said first thread, an address watch on a second memory address represented by the second variable is removed unless the second variable was previously removed from view and returned to view on said user interface.