US2013262936A1PendingUtilityA1

Assessing computer programs using stack frame signatures

53
Assignee: CBS INTERACTIVE INCPriority: May 24, 2001Filed: Apr 3, 2013Published: Oct 3, 2013
Est. expiryMay 24, 2021(expired)· nominal 20-yr term from priority
G06F 11/0715G06F 11/3636G06F 11/0778G06F 11/3466G06F 11/0766
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method of assessing a computer program under actual working conditions according to one embodiment comprises executing the computer program multiple times under actual working conditions, in response to each unhandled exception encountered during execution of the computer program, creating a corresponding stack frame signature to characterize the state of the program, and comparing the stack frame signatures to determine which unhandled exceptions are likely to have resulted from similar features.

Claims

exact text as granted — not AI-modified
1 . A computer-implemented method, comprising:
 tracing by a processor a call stack for an executed program;   generating a selected metric for each stack frame in the call stack, the selected metric comprising a type of module corresponding to the stack frame;   encoding each selected metric into a corresponding symbol; and   assembling the encoded symbols into an ordered list to form a stack frame signature with a historical execution path of the executed program,   wherein the type of module is used to determine whether to include the selected metric in the stack frame signature.   
     
     
         2 . A computer-implemented method according to  claim 1 , comprising:
 excluding a selected metric from the stack frame signature that is associated with a type of module provided by an operating system.   
     
     
         3 . A computer-implemented method according to  claim 1 , wherein the selected metric comprises a length of each of the stack frames. 
     
     
         4 . A computer-implemented method according to  claim 3 , wherein the step of encoding each selected metric into a corresponding symbol comprises encoding the length of each of the stack frames in a positional notation system of the form base b, wherein b is greater than 2. 
     
     
         5 . A computer-implemented method according to  claim 1 , wherein the selected metric comprises an identifier of a generic type of callee module corresponding to each of the stack frames. 
     
     
         6 . A computer-implemented method according to  claim 1 , wherein the selected metric comprises an identifier of a specific callee code module corresponding to each of the stack frames. 
     
     
         7 . A computer-implemented method according to  claim 1 , wherein the selected metric comprises an identifier of a callee library associated with each of the stack frames. 
     
     
         8 . A computer-implemented method according to  claim 1 , wherein the selected metric comprises an indication of a system call applicable to each of the stack frames. 
     
     
         9 . A computer-implemented method according to  claim 1 , wherein the selected metric comprises an indication of a peripheral driver module call applicable to each of the stack frames. 
     
     
         10 . A computer-implemented method according to  claim 10 , further comprising:
 delimiting the series of encoded symbols so as to indicate the start and the end of the call stack.   
     
     
         11 . A computer-implemented method according to  claim 1 , wherein the stack frame signature formed by the step of assembling the series of encoded symbols into an ordered list does not comprise specific address information. 
     
     
         12 . A computer-readable non-transitory storage medium on which is stored a stack signature program for capturing and describing the state of an application program under actual working conditions, the stack signature program being registered with a target operating system that launches the stack signature program responsive to abnormal termination of the application program, the stack signature program comprising instructions that when executed cause a computing system to:
 trace a call stack for an executed program;   generate a selected metric for each stack frame in the call stack, the selected metric comprising a type of module corresponding to the stack frame;   encode each selected metric into a corresponding symbol; and   assemble the encoded symbols into an ordered list to form a stack frame signature with a historical execution path of the executed program,   wherein the type of module is used to determine whether to include the selected metric in the stack frame signature.   
     
     
         13 . The non-transitory storage medium of  claim 12 , further comprising instructions that when executed cause the computing system to:
 exclude a selected metric from the stack frame signature that is associated with a type of module provided by the target operating system.   
     
     
         14 . The storage medium of  claim 12 , wherein the selected metric comprises a length of each of the stack frames. 
     
     
         15 . The storage medium of  claim 14 , further comprising instructions that when executed cause the computing system to encode the length of each of the stack frames in a positional notation system of the form base b, wherein b is greater than 2. 
     
     
         16 . The storage medium of  claim 12 , wherein the selected metric comprises an identifier of a generic type of callee module corresponding to each of the stack frames. 
     
     
         17 . The storage medium of  claim 12 , wherein the selected metric comprises an identifier of a specific callee code module corresponding to each of the stack frames. 
     
     
         18 . The storage medium of  claim 12 , wherein the selected metric comprises an identifier of a callee library associated with each of the stack frames. 
     
     
         19 . The storage medium of  claim 12 , wherein the selected metric comprises an indication of a system call applicable to each of the stack frames. 
     
     
         20 . The storage medium of  claim 12 , wherein the selected metric comprises an indication of a peripheral driver module call applicable to each of the stack frames. 
     
     
         21 . The storage medium of  claim 12 , further comprising instructions that when executed cause the computing system to:
 delimit the series of encoded symbols so as to indicate the start and the end of the call stack.   
     
     
         22 . The storage medium of  claim 12 , wherein the stack frame does not comprise specific address information. 
     
     
         23 . An apparatus, comprising:
 a processor; and   a memory coupled to the processor, the memory to store a computer program to generate stack signatures that when executed by the processor is operative to:   trace a call stack for an executed program;   generate a selected metric for each stack frame in the call stack, the selected metric comprising a type of module corresponding to the stack frame;   encode each selected metric into a corresponding symbol; and   assemble the encoded symbols into an ordered list to form a stack frame signature with a historical execution path of the executed program,   wherein the type of module is used to determine whether to include the selected metric in the stack frame signature.   
     
     
         24 . The apparatus of  claim 23 , the processor further operative to:
 exclude a selected metric from the stack frame signature that is associated with a type of module provided by the target operating system.   
     
     
         25 . The apparatus of claim  46 , the selected metric comprising a length of each of the stack frames.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.