Stepping out of an asynchronous method into its continuation in a debugger
First Claim
1. A computer-implemented method comprising:
- identifying a plurality of endpoints in a callee of a computer program, each of the endpoints being a point where execution of the callee ends, identifying the plurality of endpoints comprising generating identifiers for the plurality of endpoints;
as part of executing the computer program, at a caller, making an asynchronous function call from the caller to the callee;
recognizing that one of the identified endpoints has been reached in the program execution after making the asynchronous function call, the recognizing that the one of the identified endpoints has been reached being based at least in part on at least one of the generated identifiers for the plurality of endpoints;
in response to recognizing that one of the identified endpoints has been reached in the program execution after the making of the asynchronous function call, performing the following;
setting at least one of one or more debugging indicators, the at least one of the one or more debugging indicators being correlated to the callee to indicate that execution of the callee has reached at least one of the endpoints; and
continuing the computer program execution;
in response to the computer program execution reaching a continuation of the callee that is waiting for completion of the callee with respect to the asynchronous function call, determining that at least one of the one or more debugging indicators is set to indicate that execution of the callee has reached at least one of the endpoints; and
stopping the program execution and stepping out of the program execution at entry into the continuation of the callee, the stopping of the program execution and the stepping out being performed in response to one or more determinations comprising the determination that at least one of the one or more debugging indicators is set to indicate that execution of the callee has reached at least one of the endpoints.
2 Assignments
0 Petitions
Accused Products
Abstract
Stepping out of an asynchronous process. A method includes, as part of a computer program execution, at a caller, making an asynchronous function call from the caller to a callee. Associated with the asynchronous function call a continuation waits for the completion of the callee with respect to the asynchronous function call. The method further includes correlating a debugging indicator to the callee indicating that a user wishes to step out of the caller when the callee returns. An indication of completion of the callee with respect to the asynchronous function call and that a user wishes to step from the callee to the continuation is received. The debugging indicator is referenced and based on the debugging indicator execution at entry into the continuation is stopped.
41 Citations
20 Claims
-
1. A computer-implemented method comprising:
-
identifying a plurality of endpoints in a callee of a computer program, each of the endpoints being a point where execution of the callee ends, identifying the plurality of endpoints comprising generating identifiers for the plurality of endpoints; as part of executing the computer program, at a caller, making an asynchronous function call from the caller to the callee; recognizing that one of the identified endpoints has been reached in the program execution after making the asynchronous function call, the recognizing that the one of the identified endpoints has been reached being based at least in part on at least one of the generated identifiers for the plurality of endpoints; in response to recognizing that one of the identified endpoints has been reached in the program execution after the making of the asynchronous function call, performing the following; setting at least one of one or more debugging indicators, the at least one of the one or more debugging indicators being correlated to the callee to indicate that execution of the callee has reached at least one of the endpoints; and continuing the computer program execution; in response to the computer program execution reaching a continuation of the callee that is waiting for completion of the callee with respect to the asynchronous function call, determining that at least one of the one or more debugging indicators is set to indicate that execution of the callee has reached at least one of the endpoints; and stopping the program execution and stepping out of the program execution at entry into the continuation of the callee, the stopping of the program execution and the stepping out being performed in response to one or more determinations comprising the determination that at least one of the one or more debugging indicators is set to indicate that execution of the callee has reached at least one of the endpoints. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. One or more computer-readable memory comprising computer-readable instructions stored thereon that when executed perform acts comprising:
-
identifying one or more endpoints in a callee of a computer program, each of the one or more endpoints being a point where execution of the callee ends, identifying the one or more endpoints comprising storing one or more identifiers for the one or more endpoints; as part of executing the computer program, at a caller, making an asynchronous function call from the caller to the callee; recognizing that one of the one or more identified endpoints has been reached in the program execution after making the asynchronous function call, the recognizing that the one of the one or more identified endpoints has been reached being based at least in part on at least one of the one or more identifiers for the one or more endpoints; in response to recognizing that one of the one or more identified endpoints has been reached in the program execution after the making of the asynchronous function call, performing the following; setting at least one of one or more debugging indicators, the at least one of the one or more debugging indicators being correlated to the callee to indicate that execution of the callee has reached at least one of the one or more endpoints; and continuing the computer program execution; in response to the computer program execution reaching a continuation of the callee that is waiting for completion of the callee with respect to the asynchronous function call, determining that at least one of the one or more debugging indicators is set to indicate that execution of the callee has reached at least one of the one or more endpoints; and stopping the program execution and stepping out of the program execution at entry into the continuation of the callee, the stopping of the program execution and the stepping out being performed in response to one or more determinations comprising the determination that at least one of the one or more debugging indicators is set to indicate that execution of the callee has reached at least one of the one or more endpoints. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computing system including functionality for stepping out of an asynchronous process, the computing system comprising:
-
one or more processors; one or more computer readable media coupled to the one or more processors, wherein the one or more computer readable media comprise computer executable instructions stored thereon that when executed by one or more of the processors cause one or more of the processors to perform the following acts; identifying a plurality of endpoints in a callee of a computer program, each of the endpoints being a point where execution of the callee ends, identifying the plurality of endpoints comprising generating identifiers for the plurality of endpoints, the identifiers for the plurality of endpoints each identifying a location of a corresponding on one of the plurality of endpoints; as part of executing the computer program, at a caller, making an asynchronous function call from the caller to the callee; recognizing that one of the identified endpoints has been reached in the program execution after making the asynchronous function call, the recognizing that the one of the identified endpoints has been reached being based at least in part on at least one of the generated identifiers for the plurality of endpoints; in response to recognizing that one of the identified endpoints has been reached in the program execution after the making of the asynchronous function call, performing the following; setting at least one of one or more debugging indicators, the at least one of the one or more debugging indicators being correlated to the callee to indicate that execution of the callee has reached at least one of the endpoints; and continuing the computer program execution; in response to the computer program execution reaching a continuation of the callee that is waiting for completion of the callee with respect to the asynchronous function call, determining that at least one of the one or more debugging indicators is set to indicate that execution of the callee has reached at least one of the endpoints; and stopping the program execution and stepping out of the program execution at entry into the continuation of the callee, the stopping of the program execution and the stepping out being performed in response to one or more determinations comprising the determination that at least one of the one or more debugging indicators is set to indicate that execution of the callee has reached at least one of the endpoints. - View Dependent Claims (17, 18, 19, 20)
-
Specification