Method and system for expanding a buried stack frame
AssigneeMicrosoft Corporation
InventorsTimothy L. Paterson, Alan W. Carter
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsTimothy L. Paterson, Alan W. Carter
Estimating the term…
A method and system for growing stack frames is described. According to the invention, actual growth of a stack frame buried below the top of the stack is delayed until such time as the frame is returned to the top of the stack. The invention can be applied, for example, in a source code debugger to provide an improved Edit and Continue capability. In one aspect, the invention is implemented in a computer system that includes a processor (CPU), a stack of frames accessible to the processor, and a program for execution by the processor. The program is composed of a set of procedures. The processor begins executing a procedure of the set and places a stack frame associated with the execution of the procedure on top of the stack. This first stack frame includes a reserved location that can be used later to record an amount or increment by which to grow the frame. The processor begins executing another procedure (or another instance of the same procedure) and places a second stack frame associated with this second procedure execution at the top of the stack above the first frame. The processor receives a command to increase the size of the first frame by a specified increment. While the second frame is above the first frame in the stack, the processor saves the specified increment in the reserved frame location of the buried first stack frame. Thereafter, the processor brings the first frame back to the top of the stack, retrieves the saved increment from the reserved frame location of the first frame, and increases the size of the first frame by the specified increment. The processor then can continue the first procedure execution with the first frame thus increased in size.
In a computer system comprising a processor, a stack holding stack frames and having a top, a program having a set of procedures, and a debugging facility for controlling execution of the procedures by the processor, a method of growing one of the stack frames comprising the computer-implemented steps of:
A method in a computer system, the computer system having a stack that includes stack frames, the stack having a top, each stack frame having a current size, the method for resizing a stack frame comprising:
A method in a computer system, the computer system having a stack and a computer program, the computer program having procedures to be executed, the computer system for executing procedures, for suspending execution of procedures and for later resuming execution of the suspended procedures, the method for modifying an executing procedure comprising:
A computer system comprising:
A computer-readable medium containing instructions for controlling a computer system to perform a method, the computer system having a stack, the stack having a first and second stack frame, the first stack frame being buried below the second stack frame on the stack, the method for resizing a stack frame comprising:
A computer-readable medium containing instructions for controlling a computer system to perform a method, the computer system having a stack and a computer program, the computer program having a first procedure and a second procedure, the first and second procedures each having an allocated portion of the stack, the portion of the stack allocated for the first procedure being buried below the portion of the stack allocated for the second procedure, execution of the first procedure being suspended, execution of the second procedure being commenced but not completed, the method for modifying an executing procedure comprising:
Dependencies are inferred from the claim text.