Patents by Inventor Kenneth Bryant Pierce

Kenneth Bryant Pierce has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7620938
    Abstract: Program execution can be monitored and recorded for later playback. Certain state changes that can be predicted via a virtual processor during playback need not be recorded, so a compressed recording can be stored. To facilitate random access with respect to time during playback, key frames can be stored within the compressed recording. An index mechanism can associate key frames with particular memory addresses. Additionally, a snapshot of values for memory addresses can be used to further facilitate determining the value of a memory address without having to simulate execution. Multiprocessor executions can be supported, and playback can be done on a machine type different from that on which recording took place.
    Type: Grant
    Filed: October 31, 2005
    Date of Patent: November 17, 2009
    Assignee: Microsoft Corporation
    Inventors: Andrew James Edwards, Darek Mihocka, Ho-Yuen Chau, Ronald C. Murray, Sanjay Bhansali, Stuart D. de Jong, Wen-Ke Chen, Kenneth Bryant Pierce
  • Patent number: 7178132
    Abstract: A method used for walking forward through a binary image of a procedure to identify a return instruction, and while walking forward through the binary image, identifying a set of instructions that affect the distance to a return address stored in the stack. After calculating distance structure variables based on the set of instructions, and using the distance structure variables to update the stack pointer and the instruction pointer, returning to walk forward through the binary image pointed to by the updated instruction pointer. This continues until the stack is empty, and then a list of all instruction pointers are returned, as a call chain. An additional optimization includes caching a list on instruction pointer addresses with already computed distance structure variables.
    Type: Grant
    Filed: October 23, 2002
    Date of Patent: February 13, 2007
    Assignee: Microsoft Corporation
    Inventor: Kenneth Bryant Pierce
  • Patent number: 7174554
    Abstract: Tools and methods are described herein for discovering race condition errors in a software program. The errors are discovered by deliberately causing a processor executing the test program to switch threads at intervals other than normally scheduled by an operating system. The thread switching is caused upon occurrence of selected events. The intervals may be selected automatically or with user input. Furthermore, thread switching may be caused during conditions more likely to cause race condition errors. For example, thread switches may be caused between threads that share control of a memory device or while the processor is executing instructions related to synchronization tools (e.g. locks, mutex, etc.).
    Type: Grant
    Filed: December 20, 2002
    Date of Patent: February 6, 2007
    Assignee: Microsoft Corporation
    Inventors: Kenneth Bryant Pierce, Ho-Yuen Chau
  • Publication number: 20040123185
    Abstract: Tools and methods are described herein for discovering race condition errors in a software program. The errors are discovered by deliberately causing a processor executing the test program to switch threads at intervals other than normally scheduled by an operating system. The thread switching is caused upon occurrence of selected events. The intervals may be selected automatically or with user input. Furthermore, thread switching may be caused during conditions more likely to cause race condition errors. For example, thread switches may be caused between threads that share control of a memory device or while the processor is executing instructions related to synchronization tools (e.g. locks, mutex, etc.).
    Type: Application
    Filed: December 20, 2002
    Publication date: June 24, 2004
    Applicant: Microsoft Corporation
    Inventors: Kenneth Bryant Pierce, Ho-Yuen Chau
  • Publication number: 20040083460
    Abstract: A method used for walking forward through a binary image of a procedure to identify a return instruction, and while walking forward through the binary image, identifying a set of instructions that affect the distance to a return address stored in the stack. After calculating distance structure variables based on the set of instructions, and using the distance structure variables to update the stack pointer and the instruction pointer, returning to walk forward through the binary image pointed to by the updated instruction pointer. This continues until the stack is empty, and then a list of all instruction pointers are returned, as a call chain. An additional optimization includes caching a list on instruction pointer addresses with already computed distance structure variables.
    Type: Application
    Filed: October 23, 2002
    Publication date: April 29, 2004
    Applicant: Microsoft Corporation
    Inventor: Kenneth Bryant Pierce