Patents by Inventor Andrew R. Sterland

Andrew R. Sterland 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: 11755458
    Abstract: Automatic identification of execution behavior(s) of software. This automatic identification is based on analysis of historical execution records using machine learning to identify a particular pattern that corresponds to an execution behavior. In order to automatically identify an execution behavior present within particular software, an execution record of that particular software is accessed. The execution record includes an execution trace that reproducibly represents the execution of the software within a particular execution environment, such that the execution record is usable to rerun the execution of the software precisely as the software previously run. Based on finding the particular pattern within the execution record, the computing system automatically identifies that the execution behavior is present within the software.
    Type: Grant
    Filed: January 21, 2021
    Date of Patent: September 12, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Leslie Yvette Richardson, Jackson Michael Davis, Del Myers, Thomas Lai, Andrew R. Sterland, Jordi Mola, James M. Pinkerton
  • Patent number: 11604720
    Abstract: Based on replay of a thread, one implementation observes an influx of a value of a memory cell comprising an interaction between the thread and the value of the memory cell at an execution time point in the replaying, and determines whether the value of the memory cell observed from the influx is inconsistent with a prior value of the memory cell as known by the thread at the execution time point. If so, this implementation initiates an indication of a data inconsistency. Based on replay of a plurality of threads, another implementation identifies a memory cell that was accessed by a first thread while a thread synchronization mechanism was active on the first thread. Then, if there was another access to the memory cell by a second thread without use of the thread synchronization mechanism, this implementation initiates an indication of a potential data contention.
    Type: Grant
    Filed: September 13, 2021
    Date of Patent: March 14, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Del Myers, Jackson Michael Davis, Thomas Lai, Andrew R. Sterland, Deborah Chen, Patrick Lothian Nelson, Jordi Mola, Juan Carlos Arevalo Baeza, James M. Pinkerton, Leslie Yvette Richardson, Kenneth Walter Sykes
  • Publication number: 20210406154
    Abstract: Based on replay of a thread, one implementation observes an influx of a value of a memory cell comprising an interaction between the thread and the value of the memory cell at an execution time point in the replaying, and determines whether the value of the memory cell observed from the influx is inconsistent with a prior value of the memory cell as known by the thread at the execution time point. If so, this implementation initiates an indication of a data inconsistency. Based on replay of a plurality of threads, another implementation identifies a memory cell that was accessed by a first thread while a thread synchronization mechanism was active on the first thread. Then, if there was another access to the memory cell by a second thread without use of the thread synchronization mechanism, this implementation initiates an indication of a potential data contention.
    Type: Application
    Filed: September 13, 2021
    Publication date: December 30, 2021
    Inventors: Del MYERS, Jackson Michael DAVIS, Thomas LAI, Andrew R. STERLAND, Deborah CHEN, Patrick Lothian NELSON, Jordi MOLA, Juan Carlos AREVALO BAEZA, James M. PINKERTON, Leslie Yvette RICHARDSON, Kenneth Walter SYKES
  • Patent number: 11138093
    Abstract: Identifying and reporting potential data inconsistencies and/or potential data contentions based on historic debugging traces. Based on replay of a thread, some implementations observe an influx of a value to a memory cell, and determine whether the value of the memory cell observed from the influx is inconsistent with a prior value of the memory cell as known by the thread. If so, these implementations can initiate an indication of a data inconsistency. Based on replay of a plurality of threads, other implementations identify a memory cell that was accessed by a first thread while a thread synchronization mechanism was active on the first thread. Then, if there was another access to the memory cell by a second thread without use of the thread synchronization mechanism, these implementations might initiate an indication of a potential data contention.
    Type: Grant
    Filed: April 30, 2019
    Date of Patent: October 5, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Del Myers, Jackson Michael Davis, Thomas Lai, Andrew R Sterland, Deborah Chen, Patrick Lothian Nelson, Jordi Mola, Juan Carlos Arevalo Baeza, James M Pinkerton, Leslie Yvette Richardson, Kenneth Walter Sykes
  • Patent number: 11132280
    Abstract: This disclosure relates to identifying and presenting differences between a plurality of recorded executions of an executable entity. One or more models are created over the plurality of recorded prior executions of at least a portion of an executable entity. These models include at least one of (i) a control flow model, or (ii) a data model. An anomalous model data point is identified within these models, and a first location in at least one of the plurality of recorded executions that corresponds to the anomalous model data point is identified. A second location in the at least one of the plurality of recorded executions is also identified. This second location is causal to the anomalous model data point at the first location. The identity of the first and/or second locations in the least one of the plurality of recorded executions is presented.
    Type: Grant
    Filed: February 8, 2019
    Date of Patent: September 28, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jackson Michael Davis, Del Myers, Patrick Lothian Nelson, Andrew R. Sterland, Leslie Yvette Richardson, Jordi Mola, James M. Pinkerton, Mark Marron
  • Publication number: 20210141709
    Abstract: Automatic identification of execution behavior(s) of software. This automatic identification is based on analysis of historical execution records using machine learning to identify a particular pattern that corresponds to an execution behavior. In order to automatically identify an execution behavior present within particular software, an execution record of that particular software is accessed. The execution record includes an execution trace that reproducibly represents the execution of the software within a particular execution environment, such that the execution record is usable to rerun the execution of the software precisely as the software previously run. Based on finding the particular pattern within the execution record, the computing system automatically identifies that the execution behavior is present within the software.
    Type: Application
    Filed: January 21, 2021
    Publication date: May 13, 2021
    Inventors: Leslie Yvette RICHARDSON, Jackson Michael DAVIS, Del MYERS, Thomas LAI, Andrew R. STERLAND, Jordi MOLA, James M. PINKERTON
  • Patent number: 10956304
    Abstract: Dynamically instrumenting code that executes based on a historic execution of a subject executable entity. Historic execution information for a subject executable entity is accessed. The historic execution information includes execution state information for at least one point in time in the historic execution the executable entity. Diagnostic code instruction(s) are identified, for instrumenting subject code instruction(s) of the executable entity. The subject code instruction(s) are virtually executed based at least on supplying the subject code instruction(s) with data from the historic execution information. While virtually executing the identified executable code instruction(s), the diagnostic code instruction(s) are also executed. The diagnostic code instruction(s) collecting diagnostic data regarding the virtual execution of the subject code instruction(s), or override at least one of a value or an execution behavior of the subject code instruction(s).
    Type: Grant
    Filed: January 25, 2019
    Date of Patent: March 23, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Jackson Michael Davis, Patrick Lothian Nelson, Andrew R. Sterland, Jordi Mola, Del Myers, Leslie Yvette Richardson, Thomas Lai
  • Patent number: 10922210
    Abstract: The automatic identification of execution behavior(s) of software. This automatic identification is based on a historical analysis of execution records to identify a particular pattern that represents an execution behavior. In order to automatically identify an execution behavior present within particular software, an execution record (or perhaps multiple execution records) representing the execution of that particular software may be accessed. Based on finding the particular pattern within the execution record (or one, some, or all of the multiple execution records) representing the execution of that particular software, the computing system may automatically identify that the execution behavior is present within the software. This may dramatically assist in modifying that execution behavior.
    Type: Grant
    Filed: February 25, 2019
    Date of Patent: February 16, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Leslie Yvette Richardson, Jackson Michael Davis, Del Myers, Thomas Lai, Andrew R. Sterland, Jordi Mola, James M. Pinkerton
  • Patent number: 10877873
    Abstract: Techniques are provided to use historic execution state information to visualize tracepoint data. For example, historic execution state information corresponding to an application's previous execution is accessed. This historic execution state information was collected while the application was executing. After correlating the historic execution state information to the application's code, a tracepoint is associated with a portion of the code. Consequently, when the code is replayed based on the historic execution state information, the tracepoint causes a behavior of that code portion to be logged while the code is replayed uninterrupted. The code is then actually replayed based on the historic execution state information. During the replay, the tracepoint causes the behavior of the code portion to be logged. The logged behavior is visualized on a user interface.
    Type: Grant
    Filed: February 7, 2019
    Date of Patent: December 29, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Leslie Yvette Richardson, Jackson Michael Davis, Thomas Lai, Del Myers, Patrick Lothian Nelson, Jordi Mola, James M. Pinkerton, Andrew R. Sterland, Andrew Joseph Luhrs, Timothy Gardner Misiak
  • Patent number: 10846198
    Abstract: Automatic navigation of a user from a log statement that is selected by the user from a log to a code expression that was executed to generate the selected log statement. The computing system automatically identifies one or more code expressions as candidates for having generated the log statement, and then maps the log statement to these identified candidate code expressions in the code. In response to input from the user selecting the log expression, the computing system uses the mapping to visually provide a correlation between the log statement and the particular code expression, where the one or more mapped code expressions includes the particular code expression that actually generated the log statement.
    Type: Grant
    Filed: March 19, 2019
    Date of Patent: November 24, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Jackson Michael Davis, Andrew R. Sterland, Patrick Fenelon, Esteban Herrera
  • Publication number: 20200349053
    Abstract: Identifying and reporting potential data inconsistencies and/or potential data contentions based on historic debugging traces. Based on replay of a thread, some implementations observe an influx of a value to a memory cell, and determine whether the value of the memory cell observed from the influx is inconsistent with a prior value of the memory cell as known by the thread. If so, these implementations can initiate an indication of a data inconsistency. Based on replay of a plurality of threads, other implementations identify a memory cell that was accessed by a first thread while a thread synchronization mechanism was active on the first thread. Then, if there was another access to the memory cell by a second thread without use of the thread synchronization mechanism, these implementations might initiate an indication of a potential data contention.
    Type: Application
    Filed: April 30, 2019
    Publication date: November 5, 2020
    Inventors: Del MYERS, Jackson Michael DAVIS, Thomas LAI, Andrew R. STERLAND, Deborah CHEN, Patrick Lothian NELSON, Jordi MOLA, Juan Carlos AREVALO BAEZA, James M. PINKERTON, Leslie Yvette RICHARDSON, Kenneth Walter SYKES
  • Publication number: 20200301817
    Abstract: Automatic navigation of a user from a log statement that is selected by the user from a log to a code expression that was executed to generate the selected log statement. The computing system automatically identifies one or more code expressions as candidates for having generated the log statement, and then maps the log statement to these identified candidate code expressions in the code. In response to input from the user selecting the log expression, the computing system uses the mapping to visually provide a correlation between the log statement and the particular code expression, where the one or more mapped code expressions includes the particular code expression that actually generated the log statement.
    Type: Application
    Filed: March 19, 2019
    Publication date: September 24, 2020
    Inventors: Jackson Michael DAVIS, Andrew R. STERLAND, Patrick FENELON, Esteban HERRERA
  • Publication number: 20200272555
    Abstract: The automatic identification of execution behavior(s) of software. This automatic identification is based on a historical analysis of execution records to identify a particular pattern that represents an execution behavior. In order to automatically identify an execution behavior present within particular software, an execution record (or perhaps multiple execution records) representing the execution of that particular software may be accessed. Based on finding the particular pattern within the execution record (or one, some, or all of the multiple execution records) representing the execution of that particular software, the computing system may automatically identify that the execution behavior is present within the software. This may dramatically assist in modifying that execution behavior.
    Type: Application
    Filed: February 25, 2019
    Publication date: August 27, 2020
    Inventors: Leslie Yvette RICHARDSON, Jackson Michael DAVIS, Del MYERS, Thomas LAI, Andrew R. STERLAND, Jordi MOLA, James M. PINKERTON
  • Publication number: 20200257615
    Abstract: Techniques are provided to use historic execution state information to visualize tracepoint data. For example, historic execution state information corresponding to an application's previous execution is accessed. This historic execution state information was collected while the application was executing. After correlating the historic execution state information to the application's code, a tracepoint is associated with a portion of the code. Consequently, when the code is replayed based on the historic execution state information, the tracepoint causes a behavior of that code portion to be logged while the code is replayed uninterrupted. The code is then actually replayed based on the historic execution state information. During the replay, the tracepoint causes the behavior of the code portion to be logged. The logged behavior is visualized on a user interface.
    Type: Application
    Filed: February 7, 2019
    Publication date: August 13, 2020
    Inventors: Leslie Yvette RICHARDSON, Jackson Michael DAVIS, Thomas LAI, Del MYERS, Patrick Lothian NELSON, Jordi MOLA, James M. PINKERTON, Andrew R. STERLAND, Andrew Joseph LUHRS, Timothy Gardner MISIAK
  • Publication number: 20200257614
    Abstract: This disclosure relates to identifying and presenting differences between a plurality of recorded executions of an executable entity. One or more models are created over the plurality of recorded prior executions of at least a portion of an executable entity. These models include at least one of (i) a control flow model, or (ii) a data model. An anomalous model data point is identified within these models, and a first location in at least one of the plurality of recorded executions that corresponds to the anomalous model data point is identified. A second location in the at least one of the plurality of recorded executions is also identified. This second location is causal to the anomalous model data point at the first location. The identity of the first and/or second locations in the least one of the plurality of recorded executions is presented.
    Type: Application
    Filed: February 8, 2019
    Publication date: August 13, 2020
    Inventors: Jackson Michael DAVIS, Del MYERS, Patrick Lothian NELSON, Andrew R. STERLAND, Leslie Yvette RICHARDSON, Jordi Mola, James M. PINKERTON, Mark MARRON
  • Publication number: 20200242007
    Abstract: Dynamically instrumenting code that executes based on a historic execution of a subject executable entity. Historic execution information for a subject executable entity is accessed. The historic execution information includes execution state information for at least one point in time in the historic execution the executable entity. Diagnostic code instruction(s) are identified, for instrumenting subject code instruction(s) of the executable entity. The subject code instruction(s) are virtually executed based at least on supplying the subject code instruction(s) with data from the historic execution information. While virtually executing the identified executable code instruction(s), the diagnostic code instruction(s) are also executed. The diagnostic code instruction(s) collecting diagnostic data regarding the virtual execution of the subject code instruction(s), or override at least one of a value or an execution behavior of the subject code instruction(s).
    Type: Application
    Filed: January 25, 2019
    Publication date: July 30, 2020
    Inventors: Jackson Michael DAVIS, Patrick Lothian NELSON, Andrew R. STERLAND, Jordi MOLA, Del MYERS, Leslie Yvette RICHARDSON, Thomas LAI
  • Patent number: 10545852
    Abstract: A method for diagnosing computer readable instructions related to transfers of control is disclosed. A state transition of a unit of execution within a logical operation providing an event handler for a Document Object Model is logged during runtime of the computer readable instructions. Diagnostic information of the logical operation is associated with the state transition. The state transition and associated diagnostic information is provided for retrieval at a selected point in the computer readable instructions.
    Type: Grant
    Filed: September 18, 2018
    Date of Patent: January 28, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Michael C. Fanning, Felix Gerard Torquil Ifor Andrew, Daniel J. Moseley, Simon Calvert, Andrew R. Sterland, Timothy Rice, Jeffrey T. Fisher, Robert A. Paveza, Taylor C. Woll, Gregg Miskelly, Harold L. Pierson, III, Christopher Edmonds, Elliot H. Omiya, Karthik Vivek Nadig, Francisco Javier Wong, Zhaochuan Gao, Andriy Stasyuk
  • Publication number: 20190057012
    Abstract: A method for diagnosing computer readable instructions related to transfers of control is disclosed. A state transition of a unit of execution within a logical operation providing an event handler for a Document Object Model is logged during runtime of the computer readable instructions. Diagnostic information of the logical operation is associated with the state transition. The state transition and associated diagnostic information is provided for retrieval at a selected point in the computer readable instructions.
    Type: Application
    Filed: September 18, 2018
    Publication date: February 21, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Michael C. Fanning, Felix Gerard Torquil Ifor Andrew, Daniel J. Moseley, Simon Calvert, Andrew R. Sterland, Timothy Rice, Jeffrey T. Fisher, Robert A. Paveza, Taylor C. Woll, Gregg Miskelly, Harold L. Pierson, III, Christopher Edmonds, Elliot H. Omiya, Karthik Vivek Nadig, Francisco Javier Wong, Zhaochuan Gao, Andriy Stasyuk
  • Patent number: 10078575
    Abstract: A method for diagnosing computer readable instructions related to transfers of control is disclosed. A state transition of a unit of execution within a logical operation is logged during runtime of the computer readable instructions. Diagnostic information of the logical operation is associated with the state transition. The state transition and associated diagnostic information is provided for retrieval at a selected point in the computer readable instructions.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: September 18, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Michael C. Fanning, Felix Gerard Torquil Ifor Andrew, Daniel J. Moseley, Simon Calvert, Andrew R. Sterland, Timothy Rice, Jeffrey T. Fisher, Robert A. Paveza, Taylor C. Woll, Gregg Miskelly, Harold L. Pierson, III, Christopher Edmonds, Elliot H. Omiya, Karthik Vivek Nadig, Francisco Javier Wong, Zhaochuan Gao, Andriy Stasyuk
  • Patent number: 9665463
    Abstract: Techniques are described herein that are capable of instantiating and executing in-process wrapped execution engine(s) for tooling a dynamic program across a process boundary. For instance, a dynamic language execution engine may be instantiated in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running. The wrapped execution engine may be configured to provide information regarding execution of a targeted application of the host process to a requesting application. The wrapped execution engine may be isolated from other execution engine(s) that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine. The targeted application may include one or more of the other execution engines.
    Type: Grant
    Filed: June 5, 2012
    Date of Patent: May 30, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Benjamin J. Anderson, Michael C. Fanning, Timothy S. Rice, Andrew R. Sterland