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).

  • Patent number: 8910126
    Abstract: Compiling source code includes receiving, by an optimizing compiler from a debugger, a variable value modification profile that specifies locations in the source code at which variable values modified during a debug session; compiling the source code, including: inserting snapshots at one or more of the locations in the source code at which variable values were modified, each snapshot including a breakpoint; and only for each snapshot at a location in the source code at which variable values were modified: inserting, between the breakpoint and remaining source code at the location of the snapshot, a module of computer program instructions that when executed retrieves a current value of a variable and stores the current value in a register; and recording the location of each inserted snapshot; and providing, to the debugger by the optimizing compiler, the recorded locations of each inserted snapshot along with the compiled source code.
    Type: Grant
    Filed: April 18, 2012
    Date of Patent: December 9, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Justin K. King, Lee Nee
  • Patent number: 8899343
    Abstract: In an embodiment, a first execution path in a program is determined that has been executed a largest number of times, as compared to at least one other path in the program. Swapped instructions are replaced in the program with breakpoints, wherein the swapped instructions are not on the first execution path. The breakpoints that are not on the first execution path and that are contiguous to each other are replaced in the program with a control word.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: December 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Justin K. King, Lee Nee, Michelle A. Schlicht
  • Patent number: 8904356
    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: Grant
    Filed: October 20, 2010
    Date of Patent: December 2, 2014
    Assignee: International Business Machines Corporation
    Inventor: Cary L. Bates
  • Publication number: 20140344789
    Abstract: A method for implementing a step over operation by a debugger for an instruction in a routine includes receiving a step over command for an instruction and determining whether the instruction is a branch used for a function call. If the instruction is not a branch used for a function call, then the debugger treats the instruction as not a function call. If the instruction is a branch used for a function call, then the debugger determines whether the instruction is generated from source code. If the instruction is not generated from source code, then the debugger treats the instruction as not a function call. If the instruction is generated from source code, then the debugger treats the instruction as a function call.
    Type: Application
    Filed: May 17, 2013
    Publication date: November 20, 2014
    Applicant: International Business Machines Corporation
    Inventors: Cary L. Bates, XiaoLing Chen, Wang Fan
  • Publication number: 20140344784
    Abstract: According to embodiments of the invention, methods, computer readable storage medium, and a computer system for controlling access to variables protected by an alias are disclosed. The method may include monitoring, during a debug session, each attempt by a debugger to apply an operator to one or more variables protected by an alias. The method may also include determining whether to allow an application of an operator to a variable protected by an alias, wherein the determination is based at least in part on one or more rules.
    Type: Application
    Filed: May 16, 2013
    Publication date: November 20, 2014
    Applicant: International Business Machines Corporation
    Inventors: Cary L. Bates, Kershaw S. Mehta
  • Publication number: 20140344790
    Abstract: A method for evaluating a breakpoint in a line of source code includes encountering the breakpoint and evaluating whether the breakpoint is at the start of the line. If the breakpoint is at the start of the line, then the debugger stops at the breakpoint and tracks the breakpoint. If the breakpoint is not at the start of the line, then the debugger evaluates whether the breakpoint is reached via a back branch. If the breakpoint is not at the start of the line and is reached via a back branch, then the debugger stops at the breakpoint and tracks the breakpoint. If the breakpoint is not at the start of the line and is not a back branch target, then the debugger passes the breakpoint and tracks the breakpoint.
    Type: Application
    Filed: May 17, 2013
    Publication date: November 20, 2014
    Applicant: International Business Machines Corporation
    Inventors: Cary L. Bates, XiaoLing Chen, Wang Fan
  • Patent number: 8881115
    Abstract: Debugging source code includes: tracking, by a debugger during a debug session, duration of user examination of source code locations; providing, by the debugger to an optimizing compiler, a source code examination profile specifying source code locations examined by the user during the debug session; and receiving, by the debugger from the optimizing compiler: compiled source code for debugging, the compiled source code comprising, at each of one or more source code locations specified in the source code examination profile: a snapshot before the source code of the source code location, followed by an expanded snapshot, the expanded snapshot including computer program instructions to enable, during a debug session, examination of variable values changing during execution of the source code at the source code location; and a recording of snapshot locations and expanded snapshot locations.
    Type: Grant
    Filed: April 17, 2012
    Date of Patent: November 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Justin K. King, Lee Nee
  • Patent number: 8874865
    Abstract: A computing system includes computer memory of a number of different memory types. An application program compiled for execution on the computing system controls access to a field of a record in the computer memory of the computing system by defining a record that includes one or more fields, the one or more fields including a restricted field having a specification of restricted accessibility when the restricted field is allocated in a particular memory type; allocating an instance of the record in memory of the particular memory type; and denying each attempted access of the restricted field while the record is allocated in the particular memory type.
    Type: Grant
    Filed: September 9, 2011
    Date of Patent: October 28, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Nicholas P. Johnson, Justin K. King
  • Patent number: 8850397
    Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a network, collaborative software debugging includes presenting a client-specific GUI that includes a client-specific local variables pane; detecting user input including detecting, by at least one particular debug client, user input setting the client-specific local variables pane to display local variables of a stack frame associated with an active routine owned by the particular debug client; generating and sending to the debug server application-level messages; receiving client-specific debug results; and displaying the client-specific debug results, including: displaying, in the particular debug client's client-specific local variables pane, the local variables of the stack frame associated with the active routine owned by the particular debug client; and displaying, in another debug client's client-specific local variables pane, local variables of another stack frame.
    Type: Grant
    Filed: November 10, 2010
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventor: Cary L. Bates
  • Patent number: 8843899
    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: Grant
    Filed: October 29, 2010
    Date of Patent: September 23, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, David L. Hermsmeier, Paula A. Kavanagh, Rodney L. Rabe
  • Patent number: 8826235
    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: Grant
    Filed: November 28, 2012
    Date of Patent: September 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Rodney L. Rabe
  • Patent number: 8826236
    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: Grant
    Filed: November 28, 2012
    Date of Patent: September 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Rodney L. Rabe
  • Patent number: 8819640
    Abstract: In an embodiment, a cloud debug breakpoint, assigned to a first user, is established in a program at a first server in a cloud, wherein the first user selects the first server at which the program executes, from among servers in the cloud. The program at the servers in the cloud is executed, in response to requests from users. The program at the first server in the cloud is executed, in response to all requests from the first user to the program. If an identifier of a user that sent a request that the program was executing at a time that execution of the program at the first server reaches the cloud debug breakpoint matches an identifier of the first user assigned to the cloud debug breakpoint, the execution of the program is halted and control of a processor is given to a debugger.
    Type: Grant
    Filed: July 24, 2012
    Date of Patent: August 26, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Kershaw S. Mehta
  • Publication number: 20140229915
    Abstract: According to embodiments of the invention, methods, computer readable storage medium, and a computer system for providing multiple versions of elements of a program in a single compile are disclosed. The method may include receiving a request to compile a current version of a program for debug. The method may also include identifying, by an integrated development environment, a previous version of an element of the program, wherein the previous version of the element is identified by comparing the current version of the program to a previous version of the program. The method may also include inserting the previous version of the element into the current version of the program. The method may also include creating a compiler directive identifying the previous version of the element. The method may also include compiling the current version of the program for debug.
    Type: Application
    Filed: March 13, 2013
    Publication date: August 14, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. Bates, Lee N. Helgeson, Justin K. King, Michelle A. Schlicht
  • Patent number: 8806447
    Abstract: Debugging of code of a computer program is facilitated by implementing, during a debugging session, a step-type operation by machine instruction stepping through the code, and concurrent therewith, setting up breakpoints to perform the step-type operation. Responsive to the machine instruction stepping reaching a next debuggable line of code prior to completion of setup of breakpoints to perform the step-type operation, the machine instruction stepping is discontinued, and the setting up of breakpoints to perform the step-type operation is discontinued. Alternatively, responsive to completing setup of the breakpoints to perform the step-type operation prior to machine instruction stepping reaching the next debuggable line of code, the machine instruction stepping is discontinued, and the code is executed to perform the step-type operation using the set breakpoints.
    Type: Grant
    Filed: October 29, 2010
    Date of Patent: August 12, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, David L. Hermsmeier
  • Patent number: 8806449
    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: Grant
    Filed: December 10, 2012
    Date of Patent: August 12, 2014
    Assignee: International Business Machines Corporation
    Inventor: Cary L. Bates
  • Patent number: 8806438
    Abstract: In a distributed system that includes a debug server and debug clients coupled for 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 variable-specific message for a particular variable; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including establishing the variable-specific message; and returning, to the debug clients, client-specific debug results, including: responsive to each request by a variable evaluating debug client to evaluate a variable and if a variable-specific message has been established for the variable to be evaluated, returning the content of the variable-specific message to be displayed in association with the variable in the variable evaluating debug c
    Type: Grant
    Filed: April 20, 2011
    Date of Patent: August 12, 2014
    Assignee: International Business Machines Corporation
    Inventor: Cary L. Bates
  • Publication number: 20140201352
    Abstract: In an embodiment, in response to detecting a request by a program to access a network, if the request is the first time that the program requests to access the network, a subset of instructions is replaced in the program with supervisor call instructions. The supervisor call instructions cause respective interrupts of execution of the program. In response to each of the respective interrupts of execution of the program, the supervisor call instructions that caused the respective interrupts are replaced with the respective swapped instructions, and if a number of the respective interrupts of execution exceed a trap threshold, all remaining of the respective swapped instructions are stored to the program.
    Type: Application
    Filed: January 15, 2013
    Publication date: July 17, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. Bates, Lee Nee Helgeson, Justin K. King, Michelle A. Schlicht
  • Publication number: 20140201719
    Abstract: Methods, apparatuses, and computer program products for analyzing concurrent debugging sessions are provided. Embodiments include a first debugger initiating a conditional breakpoint in a first debug session of a first application. The conditional breakpoint stops execution of the first application based on a condition of a value of a variable of a second application. Embodiments also include the first debugger requesting and receiving the value of the variable from a second debugger. Embodiments also include the first debugger evaluating the condition of the conditional breakpoint based on the received value of the variable.
    Type: Application
    Filed: February 13, 2013
    Publication date: July 17, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: CARY L. BATES, JUSTIN K. KING, LEE NEE HELGESON, MICHELLE A. SCHLICHT
  • Patent number: 8775691
    Abstract: An indication of a version of a firmware stored in an input/output adapter may be provided by a method that includes detecting whether a first pin is connected to an external circuit, detecting whether a second pin is unconnected to an external circuit, and causing the indication to be provided if the first pin is connected and the second pin is unconnected. The indication may be provided on the first pin. The first pin may include a power supply pin and the indication may be an average rate of power supplied to the input/output adapter.
    Type: Grant
    Filed: December 18, 2012
    Date of Patent: July 8, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Justin K. King, Lee Nee, Michelle A. Schlicht