Patents by Inventor Kirk J. Krauss

Kirk J. Krauss 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: 7698690
    Abstract: A method of runtime analysis of a computer program can include, after each access of a first type to a memory address, incrementing a counter associated with the memory address and, after each access of a second type to a memory address, comparing the counter associated with the memory address with a threshold. The method further can include identifying at least one memory address having a counter that exceeds the threshold and determining a portion of code responsible for accessing the memory address associated with the counter that exceeds the threshold.
    Type: Grant
    Filed: November 10, 2005
    Date of Patent: April 13, 2010
    Assignee: International Business Machines Corporation
    Inventor: Kirk J. Krauss
  • Patent number: 7657792
    Abstract: A method of identifying race conditions in a computer program can include identifying a call to a selected function specifying a memory range. The selected function can cause data to be written to the memory range asynchronously. The method further can include spraying the memory range with a predetermined bit pattern and determining whether a detected write operation at least partially overwrites the predetermined bit pattern in the memory range. A race condition can be selectively indicated according to the determining step.
    Type: Grant
    Filed: December 28, 2006
    Date of Patent: February 2, 2010
    Assignee: International Business Machines Corporation
    Inventor: Kirk J. Krauss
  • Publication number: 20090271769
    Abstract: A computer-implemented method of finding portions of a computer program exhibiting irregular performance can include detecting an entry into a function of a computer program under test indicating a current execution of the function and, responsive to detecting an exit from the function, determining a count of a computing resource utilized by the function during the current execution of the function. The count of the computing resource can be compared with a count range determined according to at least one prior execution of the function. The function can be selectively represented within a call graph as a plurality of nodes according to the comparing.
    Type: Application
    Filed: April 27, 2008
    Publication date: October 29, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kirk J. Krauss
  • Publication number: 20090204948
    Abstract: Thread starvation is indicated for a program under test while the program is running. Beginning with a least frequently used thread in a list of thread tracking structures, if recorded events are currently listed for the thread, thread starvation is detected based on a percentage of the recorded events that took place while other threads were waiting a synchronization object held by the thread. If no recorded events are listed for the thread, the percentage of recorded of events that take place while other threads were waiting for synchronization object held by the thread does not exceed the predetermined percentage, and there are timestamps currently listed for the thread and the thread is currently waiting for a synchronization object, thread starvation is detected based on a percentage of time the thread has been waiting for the synchronization object.
    Type: Application
    Filed: February 8, 2008
    Publication date: August 13, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kirk J. Krauss
  • Patent number: 7539833
    Abstract: A method of intra-block memory usage analysis for a program can include identifying a memory block that has been allocated to the program and determining at least one intra-memory block usage characteristic for the allocated memory block.
    Type: Grant
    Filed: December 6, 2004
    Date of Patent: May 26, 2009
    Assignee: International Business Machines Corporation
    Inventors: Kirk J. Krauss, Allan K. Pratt, Jonathan M. Sanders
  • Patent number: 7500077
    Abstract: A method of detecting inefficient use of virtual memory by an application that is programmed using memory pointers. The method can include selecting a first heap from a list of tracked heaps and identifying allocated memory blocks within the first heap. A first total can be determined as a sum of sizes of the identified memory blocks. A second total can be determined as a sum of unallocated, NULL-filled bytes within the first heap that are not located outside outermost memory block addresses in each range of committed memory in the first heap. A ratio of the first total and the second total can be determined, and a memory profile corresponding to the ratio can be generated. A memory profile suggestion also can be generated.
    Type: Grant
    Filed: December 9, 2005
    Date of Patent: March 3, 2009
    Assignee: International Business Machines Corporation
    Inventor: Kirk J. Krauss
  • Publication number: 20080201393
    Abstract: Methods and apparatus, including computer program products, for identifying unnecessary synchronization objects in software applications. A computer-implemented method for determining a usefulness of synchronization objects includes, in a multi-threaded application program, tracking threads as they are created and terminated, intercepting application program interfaces (APIs) used to create and destroy thread synchronization objects, in the API wrappers, tracking existing synchronization objects in a list, and associating a list entry for each of the synchronization objects with a unique bit in a bit field.
    Type: Application
    Filed: February 20, 2007
    Publication date: August 21, 2008
    Inventor: KIRK J. KRAUSS
  • Publication number: 20080163174
    Abstract: A method and computer program product for detecting an attempt by a first thread to engage a synchronization object. A determination is made as to whether an earlier thread has already engaged the synchronization object. In response to determining that the earlier thread has already engaged the synchronization object, a determination is made as to whether the number of threads waiting to engage the synchronization object is greater than a highwater mark.
    Type: Application
    Filed: December 28, 2006
    Publication date: July 3, 2008
    Inventor: Kirk J. Krauss
  • Publication number: 20080162888
    Abstract: A method and computer program product for monitoring the chronological order in which one or more portions of a first instance of a computer program are executed, thus generating a first data file. The chronological order in which one or more portions of a second instance of the computer program are executed is monitored, thus generating a second data file. The first and second data files are compared.
    Type: Application
    Filed: December 28, 2006
    Publication date: July 3, 2008
    Inventor: KIRK J. KRAUSS
  • Publication number: 20080162776
    Abstract: A method of identifying race conditions in a computer program can include identifying a call to a selected function specifying a memory range. The selected function can cause data to be written to the memory range asynchronously. The method further can include spraying the memory range with a predetermined bit pattern and determining whether a detected write operation at least partially overwrites the predetermined bit pattern in the memory range. A race condition can be selectively indicated according to the determining step.
    Type: Application
    Filed: December 28, 2006
    Publication date: July 3, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kirk J. Krauss
  • Publication number: 20080163176
    Abstract: A method of runtime analysis for a computer program can include generating runtime data relating to memory usage for an instrumented computer program and creating a memory map comprising a plurality of memory ranges of different types according to the runtime data. At least a portion of the memory map can be presented to indicate selected ones of the plurality of memory ranges.
    Type: Application
    Filed: December 29, 2006
    Publication date: July 3, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kirk J. Krauss
  • Publication number: 20080163175
    Abstract: A method and computer program product for detecting an attempt to engage a synchronization object. A tracking list for a line of code that attempted to engage the synchronization object is updated.
    Type: Application
    Filed: December 28, 2006
    Publication date: July 3, 2008
    Applicant: International Business Machines Corporation
    Inventor: Kirk J. Krauss
  • Publication number: 20080148238
    Abstract: Runtime analysis of a computer program can be performed. An improper memory access to a memory location can be detected during runtime of the computer program. A record of the improper memory access can be stored during runtime. A subsequent error condition in the computer program can be detected during runtime. The error condition can be compared with the record corresponding to the improper memory access. Based upon the comparison, an indication that the error condition is related to the improper memory access can be provided.
    Type: Application
    Filed: December 13, 2006
    Publication date: June 19, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kirk J. Krauss, Jonathan M. Sanders
  • Publication number: 20080140978
    Abstract: A method of runtime analysis of a computer program can include detecting allocations of virtual memory regions during runtime of the computer program. An entry can be created in a list of existing virtual memory regions for each allocation of a virtual memory region during runtime. The list can be updated, during runtime, according to usage of the virtual memory regions. Virtual memory regions allocated to, but not used by, the computer program can be indicated according to the list.
    Type: Application
    Filed: December 12, 2006
    Publication date: June 12, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES
    Inventors: Cindy D. Fulmer, Victor Havin, Kirk J. Krauss
  • Publication number: 20080120627
    Abstract: A method for detecting race conditions involving heap memory access including a plurality of threads being tracked. At runtime a plurality of APIs utilized to create and destroy thread synchronization objects are intercepted, and each synchronization object created via the APIs is tracked. A bit field is created that contains a unique bit for each synchronization object. Heap memory allocations and deallocations are intercepted and tracked. The heap memory access is intercepted, and at that time, the ID of the accessing thread is compared with the last thread ID associated with that memory block when it was last accessed. If the thread IDs do not match, then the current thread synchronization object bit field is compared with the last synchronization object bit field associated with thread memory block. Provided the bit fields are different, a race condition warning is reported that is displayable to the user having the call chains.
    Type: Application
    Filed: November 22, 2006
    Publication date: May 22, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kirk J. Krauss
  • Publication number: 20080109469
    Abstract: An automated method for historical analysis of a memory state, including tracking all memory write accesses by an application under test. Then, recording a directed graph having values in a plurality of memory locations, such values derived from values previously stored. The method further includes displaying a portion of the graph that led to the update of a user-specified memory location by the application under test. The method proceeds by traversing backward from any node located on the directed graph via an arc utilized to follow the path of events that led to the content of the memory location represented by that node at the time represented by that node. One end of a first displayed arc ends at the node representing the user-specified first memory location and the other end of the first displayed arc ends at another node representing a second memory location.
    Type: Application
    Filed: November 6, 2006
    Publication date: May 8, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kirk J. Krauss
  • Publication number: 20080098191
    Abstract: A method for use of a diagnostic software tool that can allow software developers to track the number of times each memory block is enlarged, and highlight the most frequently enlarged memory blocks. In this regard, in better understanding the performance characteristics of memory reallocation a developer can use this method to identify and implement better coding techniques to improve code efficiency and reduce the processing time utilized for memory reallocations. In addition, graphs can be generated to indicate the time/CPU utilization dedicated to the memory reallocation process.
    Type: Application
    Filed: October 20, 2006
    Publication date: April 24, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Kirk J. Krauss