Patents by Inventor Cary L. Bates

Cary L. Bates 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).

  • Publication number: 20120110552
    Abstract: A debugger that includes a breakpoint protection mechanism that detects when the program being debugged has been modified to overwrite one or more instructions corresponding to existing breakpoints. When the debugger halts execution of a program being debugged, all of the set breakpoints are checked by determining whether the instruction corresponding to each breakpoint has changed. If any of the instructions corresponding to the breakpoints has changed, the corresponding breakpoint is removed. An optional warning may be provided to the user to inform the user of any removed breakpoints.
    Type: Application
    Filed: October 28, 2010
    Publication date: May 3, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. Bates
  • Publication number: 20120110556
    Abstract: A debugger includes a thread holding mechanism that analyzes the code being executed by multiple threads, and delays holding each thread that is currently executing system code external to the program until the thread is no longer executing the system code external to the program, or until some threshold is exceeded. Delaying holding of a thread that is executing system code external to the program avoids potential conditions that could lock up the debugger.
    Type: Application
    Filed: November 3, 2010
    Publication date: May 3, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. Bates
  • Publication number: 20120110553
    Abstract: Debugging of code of a computer program is facilitated by implementing a step-type operation using internal breakpoints to ensure debugger control of the code. During a debugging session, a step-type operation is implemented by setting active internal breakpoints on every line of code of every routine currently on the call stack referenced by the processor and on entry points of the code being debugged, and subsequently leaving in place, upon completion of the step-type operation, active internal breakpoints. Subsequent to implementing the step-type operation any active internal breakpoints encountered during execution of one or more other operations of the code and deemed unnecessary to completion of the other operation(s) are disabled, and the location of any internal breakpoints disabled during execution of the one or more other operations are tracked in a data structure(s) for subsequent use in reestablishing needed internal breakpoints for implementation of another step-type operation.
    Type: Application
    Filed: October 29, 2010
    Publication date: May 3, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. BATES, David L. HERMSMEIER, Paula A. KAVANAGH, Rodney L. RABE
  • Publication number: 20120110555
    Abstract: Debugging of code of a computer program is facilitated by having a plurality of internal breakpoints associated with lines of code previously set by a processor, during a debugging session, while implementing one or more step-type operations. During execution of another operation, internal breakpoints are disabled as encountered and deemed unnecessary to completion of the another operation. A count of a number of interrupts of one or more interrupt-types experienced during execution of the another operation is maintained, and responsive to the count exceeding a threshold, the disabling is varied to remove at least N internal breakpoints responsive to encountering an internal breakpoint during execution of the another operation deemed unnecessary to completion of the another operation, where N?2.
    Type: Application
    Filed: October 29, 2010
    Publication date: May 3, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. BATES, David L. HERMSMEIER
  • Publication number: 20120102465
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving, by the debug server, a plurality of application-level messages, including receiving, from a session owner, a request to enable a predefined operational mode; enabling the predefined operational mode; routing, by the message router in accordance with an application-level message passing protocol and in accordance with the enabled predefined operational mode, the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger to the debug clients with application-level messages routed to the back-end debugger; and returning, by the debug server to the debug clients in response to the application-level messages rout
    Type: Application
    Filed: October 21, 2010
    Publication date: April 26, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. Bates
  • Publication number: 20120102463
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving application-level messages, including a request from a requesting debug client to notify other debug clients of an expansion of a multi-member variable; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger to the debug clients and distributing, to the other debug clients, a notification of the expansion of the multi-member variable; and returning to the debug clients in response to the application-level messages routed to the back-end debugger, client-specific debug results.
    Type: Application
    Filed: October 20, 2010
    Publication date: April 26, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. Bates
  • Publication number: 20120102460
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving application-level messages, including receiving, from a requesting debug client, a request to establish a dynamic breakpoint at location in source code; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger, sending to the debug administrator an instruction to register the dynamic breakpoint, and sending to the back-end debugger a command to establish the dynamic breakpoint; establishing the dynamic breakpoint; registering the requesting debug client's dynamic breakpoint; and returning, by the debug server to the debug clients in response to the application-level messages routed to the
    Type: Application
    Filed: October 21, 2010
    Publication date: April 26, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. Bates
  • Publication number: 20120102467
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes presenting a client-specific GUI; detecting user input including receiving a specification of display preferences specifying a preferred location at which to display source code of debuggee upon receipt of an event notification; receiving an event notification of an encountered event, the event notification specifying a location of the encountered event; and displaying client-specific debug results at the preferred location in source code without regard to the location of the encountered event.
    Type: Application
    Filed: October 21, 2010
    Publication date: April 26, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. BATES
  • Publication number: 20120102466
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving application-level messages including receiving a request to assign ownership of a portion of source code; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger and forwarding, to the debug administrator, the request to assign ownership of the portion of source code; assigning ownership of the portion of the source code to the owning debug client; and returning, to the debug clients, client-specific debug results, including returning to the debug clients a description of the assignment of ownership to the owning debug client.
    Type: Application
    Filed: October 21, 2010
    Publication date: April 26, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: CARY L. BATES
  • Publication number: 20120102459
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving, from the debug clients, application-level messages, including multiple requests to establish an event notification; routing the messages among the debug clients, debug administrator, and back-end debugger, including forwarding each request to the debug administrator, and forwarding only one of the requests to the back-end debugger; establishing one event notification; assigning, for each request, the event notification to an event group, each event group associated with one of the requesting debug clients; and returning client-specific debug results including sending, to each of the requesting debug clients, an event notification upon the back-end debugger encountering the event at the location in source code.
    Type: Application
    Filed: October 20, 2010
    Publication date: April 26, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. Bates
  • Publication number: 20120102464
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving application-level messages including receiving, from a requesting debug client, a step over command that includes an instruction to ignore, during the step over command, events established by the requesting debug client; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger and routing the step over command to the back-end debugger; performing the step over command, including ignoring the events established by the requesting debug client and processing any other events; and returning, to the debug clients in response to the application-level messages routed to the back-end debugger, cli
    Type: Application
    Filed: October 21, 2010
    Publication date: April 26, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. Bates
  • Publication number: 20120096437
    Abstract: A debugger allows a programmer to select the granularity of a line step function. Using a debugger step statement, the programmer can specify line step, statement step, or automatic selection. When the user specifies line step in the debugger statement, the debugger functions in true line step mode, where a line of source code is executed for each step. When the user specifies statement step in the debugger statement, the debugger functions in statement step mode, where a statement is executed for each step. When the user specifies automatic selection in the debugger statement, the program is analyzed, and a decision regarding whether to use line step or statement step is made based on the characteristics of the program and based on user-specified selection criteria. In this manner the function of the debugger when line stepping can vary according to the programmer's needs.
    Type: Application
    Filed: October 19, 2010
    Publication date: April 19, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. Bates, Rodney L. Rabe
  • Publication number: 20120084758
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving, by the debug server from the debug clients asynchronously during a debug session of the debuggee, a plurality of application-level messages; routing, by the message router in accordance with an application-level message passing protocol, the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger to the debug clients with application-level messages routed to the back-end debugger; and returning, by the debug server to the debug clients in response to the application-level messages routed to the back-end debugger, client-specific debug results.
    Type: Application
    Filed: October 5, 2010
    Publication date: April 5, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Cary L. Bates
  • Publication number: 20120079459
    Abstract: In an embodiment, a plurality of halted addresses of halted instructions are determined, at which execution of a plurality of threads of a program are halted. A respective next sequential instruction is computed, which is in the plurality of threads following the plurality of halted instructions. A respective next sequential breakpoint at the respective next sequential instruction in the plurality of threads is set. Execution of the plurality of threads is started after the setting the respective next sequential breakpoint. In response to the execution of each of the plurality of threads encountering the respective next sequential breakpoint and all of the plurality of threads halting, trace data is saved that describes the execution of each of the plurality of threads.
    Type: Application
    Filed: September 29, 2010
    Publication date: March 29, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. Bates, David L. Hermsmeier
  • Patent number: 8134560
    Abstract: A method for avatar wandering in a computer based interactive environment including for each avatar within a range of a current avatar, obtaining profiles of a user represented by the avatar, for each profile of the user represented by the avatar that has a same profile type as a profile of a user represented by the current avatar, comparing the profiles for matching data, computing a match score for the avatar based on the matching data, and moving the current avatar toward the avatar that has a greatest match score.
    Type: Grant
    Filed: July 25, 2008
    Date of Patent: March 13, 2012
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Bryan M. Logan
  • Patent number: 8103950
    Abstract: A link structure and method for linking therein. The link structure includes a first page of a website and may include a global page of the website. The first page includes a link that has a default pointer and may have a local pointer, a global pointer, or both. The local pointer points to a local page and the global pointer points to the global page. A local link structure includes the local pointer but not the global pointer. A global link structure includes the global pointer but not the local pointer. A hybrid link structure includes the local pointer and the global pointer. Linking within the link structure may include linking from the link to the local page through the local pointer or linking from the link to the global page through the global pointer.
    Type: Grant
    Filed: June 26, 2007
    Date of Patent: January 24, 2012
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Gilford F. Martino, John M. Santosuosso
  • Patent number: 8082245
    Abstract: Embodiments of the invention provide techniques for providing information describing locations to users of an immersive virtual environment. In one embodiment, patterns of locations visited by various users of the virtual environment may be stored in a searchable data structure(s). Further, characteristics of the location visits may be used to determine whether a given location visit was favorable for each user. Subsequently, locations visited by a current user may be matched to one of the stored patterns of locations. The matching pattern may then be used to provide favorability information describing other locations available to the current user. The favorability information may be presented to the user as graphical indications visible within the user's view of the virtual environment.
    Type: Grant
    Filed: September 11, 2008
    Date of Patent: December 20, 2011
    Assignee: International Business Machines Corporation
    Inventors: Cary L Bates, Paul R Day
  • Publication number: 20110302651
    Abstract: Embodiments of the invention provide a method, apparatus, and program product to verify a program that includes a plurality of sections with a computing system that is configured to process a plurality of threads of execution. The method comprises verifying and executing a first section of the program utilizing a first thread of execution in response to activation of the program and determining a second section of the program to execute subsequent to the first section. The method further comprises verifying the second section utilizing a second thread of execution in parallel with the execution of the first section. Another embodiment of the invention provides a method of compiling program that includes program code by grouping the program code into sections based upon the execution time of the program code and based upon which program code is most commonly executed.
    Type: Application
    Filed: June 3, 2010
    Publication date: December 8, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. Bates, Christopher A. Peterson
  • Patent number: 8037454
    Abstract: The present invention is generally directed towards providing a method, system and article of manufacture for generating and utilizing debug history to improve the debugging process. By providing facilities to store and retrieve debug history records for given events, the present invention allows developers to debug code more efficiently by allowing them to leverage information stored in a debug history repository. Further, the added functionality, related to the debug history, is available via modules that work in conjunction with existing debugger applications and is provided to users via a variety of interfaces including graphic interfaces and plug-in components.
    Type: Grant
    Filed: January 31, 2008
    Date of Patent: October 11, 2011
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Paul R. Day
  • Patent number: 8037416
    Abstract: Embodiments of the invention provide techniques for filtering and presenting elements of an immersive virtual environment. The elements may be filtered according to importance to the user, based on user-specified importance of each element, the number and type of past interactions with the elements, and the like. Further, the filtering may be performed on the basis of the user's preference for density of element presentation. The user may then be presented with a view of the virtual world in which elements having a higher degree of interest to the user are highlighted visually, and in which elements having a lesser degree of interest to the user are made partially transparent or invisible.
    Type: Grant
    Filed: August 6, 2008
    Date of Patent: October 11, 2011
    Assignee: International Business Machines Corporation
    Inventors: Cary L Bates, Jim Chun-Ta Chen, Zachary A Garbow, Gregory E Young