Patents by Inventor Patrick Lothian NELSON

Patrick Lothian NELSON 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: 11892936
    Abstract: A computer system is configured to profile a program during an execution of the program. Profiling the program includes obtaining, by a first profiler, a first set of information associated with the execution of the program, and obtaining a second set of information associated with one or more executions of the function. The second set of information includes at least a call count or an execution time of each of the one or more executions of the function. The computer system then identifies a subset of the first set of information that is associated with the one or more executions of the function, and creates aggregate information based on the subset of the first set of information and the second set of information. The aggregated information is then reported.
    Type: Grant
    Filed: April 11, 2022
    Date of Patent: February 6, 2024
    Assignee: Microsoft Tech nology Licensing, LLC
    Inventors: Patrick Lothian Nelson, Nikolaus Lee Karpinsky, Liqi Han
  • Publication number: 20230325299
    Abstract: A computer system is configured to profile a program during an execution of the program. Profiling the program includes obtaining, by a first profiler, a first set of information associated with the execution of the program, and obtaining a second set of information associated with one or more executions of the function. The second set of information includes at least a call count or an execution time of each of the one or more executions of the function. The computer system then identifies a subset of the first set of information that is associated with the one or more executions of the function, and creates aggregate information based on the subset of the first set of information and the second set of information. The aggregated information is then reported.
    Type: Application
    Filed: April 11, 2022
    Publication date: October 12, 2023
    Inventors: Patrick Lothian NELSON, Nikolaus Lee KARPINSKY, Liqi HAN
  • 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
  • Patent number: 11113182
    Abstract: Performing reverse execution debugging of an application. The method includes identifying a snapshot of application state for an application in an application framework. The method further includes emulating execution of the application, using bytecode, in a forward direction from the snapshot to an end point, causing generation of historical execution state at various points along the emulation of the application. The method further includes collecting the historical execution state. The method further includes using the collected historical execution state, emulating reverse execution of the application by substituting collected historical execution state, when needed, to restore previous state needed as a result of emulation of reverse execution of the application.
    Type: Grant
    Filed: April 1, 2019
    Date of Patent: September 7, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Patrick Lothian Nelson, Jackson Michael Davis, Del Myers, Thomas Lai
  • Patent number: 11074153
    Abstract: Collecting runtime virtual machine external state for an application running in an application runtime virtual machine, for use in emulation of the application. A method includes identifying application bytecode for which runtime virtual machine external state is to be collected. The method further includes executing machine code generated from the bytecode to generate the runtime virtual machine external state. The method further includes collecting the runtime virtual machine external state. The method further includes storing the runtime virtual machine external state for use in emulating the application.
    Type: Grant
    Filed: April 1, 2019
    Date of Patent: July 27, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Patrick Lothian Nelson, Jackson Michael Davis, Del Myers, Thomas Lai
  • 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: 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
  • 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: 20200310942
    Abstract: Collecting runtime virtual machine external state for an application running in an application runtime virtual machine, for use in emulation of the application. A method includes identifying application bytecode for which runtime virtual machine external state is to be collected. The method further includes executing machine code generated from the bytecode to generate the runtime virtual machine external state. The method further includes collecting the runtime virtual machine external state. The method further includes storing the runtime virtual machine external state for use in emulating the application.
    Type: Application
    Filed: April 1, 2019
    Publication date: October 1, 2020
    Inventors: Patrick Lothian NELSON, Jackson Michael DAVIS, Del MYERS, Thomas LAI
  • Publication number: 20200310946
    Abstract: Performing reverse execution debugging of an application. The method includes identifying a snapshot of application state for an application in an application framework. The method further includes emulating execution of the application, using bytecode, in a forward direction from the snapshot to an end point, causing generation of historical execution state at various points along the emulation of the application. The method further includes collecting the historical execution state. The method further includes using the collected historical execution state, emulating reverse execution of the application by substituting collected historical execution state, when needed, to restore previous state needed as a result of emulation of reverse execution of the application.
    Type: Application
    Filed: April 1, 2019
    Publication date: October 1, 2020
    Inventors: Patrick Lothian NELSON, Jackson Michael DAVIS, Del MYERS, Thomas LAI
  • 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: 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: 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: 10592396
    Abstract: Presenting historical state associated with prior execution of an entity. Based on replaying segment(s) of execution of an entity based on a trace, embodiments could present an indication of whether a value of a code element is, at a first execution time point, unknown, known, previously known, and/or known in the future. Additionally, or alternatively, embodiments could present an indication of a value relied upon by simulated execution of a function at a second execution time point, along with an indication of a timing of knowledge of the value in relation to the second execution time point. Additionally, or alternatively, embodiments could present an indication that a return value of a function would be known if the function had executed at a third execution time point, or an indication that the return value would be unknown if the function had executed at the third execution time point.
    Type: Grant
    Filed: April 23, 2018
    Date of Patent: March 17, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Henry Gabryjelski, Jackson Michael Davis, Patrick Lothian Nelson, Del Myers, Thomas Lai, Jordi Mola
  • Publication number: 20190324891
    Abstract: Presenting historical state of a code element of a prior execution of an entity. An embodiment includes presenting historical state of the code element based on replaying segment(s) of the prior execution from trace data. Presenting the historical state includes presenting a first state of the code element, in connection with a first execution time point. The first state is based on a first memory access for the code element at the first execution time point. Presenting the historical state also includes presenting the first state of the code element along with an indication that the first state is a last known state (in connection with a subsequent execution time point) or a next known state (in connection with a prior execution time point).
    Type: Application
    Filed: April 23, 2018
    Publication date: October 24, 2019
    Inventors: Jordi MOLA, Henry GABRYJELSKI, Jackson Michael DAVIS, Deborah Liang CHEN, Del MYERS, Thomas LAI, Patrick Lothian NELSON, Juan Carlos AREVALO BAEZA, Kenneth Walter SYKES
  • Publication number: 20190324892
    Abstract: Presenting historical state associated with prior execution of an entity. Based on replaying segment(s) of execution of an entity based on a trace, embodiments could present an indication of whether a value of a code element is, at a first execution time point, unknown, known, previously known, and/or known in the future. Additionally, or alternatively, embodiments could present an indication of a value relied upon by simulated execution of a function at a second execution time point, along with an indication of a timing of knowledge of the value in relation to the second execution time point. Additionally, or alternatively, embodiments could present an indication that a return value of a function would be known if the function had executed at a third execution time point, or an indication that the return value would be unknown if the function had executed at the third execution time point.
    Type: Application
    Filed: April 23, 2018
    Publication date: October 24, 2019
    Inventors: Henry GABRYJELSKI, Jackson Michael DAVIS, Patrick Lothian NELSON, Del MYERS, Thomas LAI, Jordi MOLA