-
公开(公告)号:US20190325980A1
公开(公告)日:2019-10-24
申请号:US15960177
申请日:2018-04-23
Applicant: Microsoft Technology Licensing, LLC
Inventor: Patrick NELSON , Jackson DAVIS , Del MYERS , Thomas LAI , Deborah CHEN , Jordi MOLA , Juan Carlos AREVALO BAEZA
Abstract: Described technologies extend the information available from an execution trace of a program by providing heuristically-derived values for memory contents when the trace does not include data expressly showing the value of a memory cell at a particular execution time. Various heuristics are described. The heuristics may use information about the memory cell at other times to produce the derived value. Some heuristics use other trace data, such as whether the memory cell is in a stack, whether there are gaps in the trace, or whether garbage collection or compilation occurred near the time in question. Grounds for the derived value are reported along with the derived value. A time-travel debugger or other program analysis tool can then present the derived values to users, or make other use of the derived values and grounds to assist debugging and other efforts to improve the functioning of a computing system.
-
公开(公告)号:US20210406154A1
公开(公告)日:2021-12-30
申请号:US17473707
申请日:2021-09-13
Applicant: Microsoft Technology Licensing, LLC
Inventor: 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
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.
-
公开(公告)号:US20190332519A1
公开(公告)日:2019-10-31
申请号:US15965026
申请日:2018-04-27
Applicant: Microsoft Technology Licensing, LLC
Inventor: Del MYERS , Jackson DAVIS , Thomas LAI , Patrick NELSON , Jordi MOLA , Juan Carlos AREVALO BAEZA
Abstract: Expressly turning tracing on and off at each juncture between code that a developer wants to have traced and other code may reduce trace file size but adds computational cost. Described technologies support selectively tracing a process's execution, with some extra tracing done beyond the code the developer wanted traced, but with significantly reduced computational cost, by reducing the number of trace enablement and disablement operations. A trace controller uses a tracing disablement distance variable whose values indicate the computational distance from trace disablement. A distance variable modifier automatically moves the distance variable closer to a stop-tracing value as the process executes. The amount of extra tracing is balanced against the reduction in trace enablement/disablement operations by tuning thresholds, based on information about routine size and computational cost. Operation of the trace controller is illustrated by sample APIs, a tracing state diagram, and a side-by-side comparison, among other items.
-
4.
公开(公告)号:US20200349053A1
公开(公告)日:2020-11-05
申请号:US16398672
申请日:2019-04-30
Applicant: Microsoft Technology Licensing, LLC
Inventor: 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
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.
-
公开(公告)号:US20190332520A1
公开(公告)日:2019-10-31
申请号:US16174273
申请日:2018-10-29
Applicant: Microsoft Technology Licensing, LLC
Inventor: Del MYERS , Thomas LAI , Patrick NELSON , Jordi MOLA , Juan Carlos AREVALO BAEZA , Stephen Harris TOUB
IPC: G06F11/36
Abstract: Described technologies support selectively tracing a process's execution, with some extra tracing done beyond the code the developer wanted traced, but with significantly reduced computational cost, by reducing the number of trace enablement and disablement operations. A trace controller uses a tracing disablement distance variable whose values indicate the computational distance from trace disablement. A distance variable modifier automatically moves the distance variable closer to a stop-tracing value as the process executes. A create task function is modified to include the setting of an indicator that a newly created task is to be traced if a current task or thread is being traced. An execute task function is modified to request the tracing of the newly created task when it is executed based on the indicator, thereby enabling selective tracing that operates across process boundaries and traces asynchronous code execution.
-
公开(公告)号:US20190324891A1
公开(公告)日:2019-10-24
申请号:US15959881
申请日:2018-04-23
Applicant: MICROSOFT TECHNOLOGY LICENSING, LLC
Inventor: Jordi MOLA , Henry GABRYJELSKI , Jackson Michael DAVIS , Deborah Liang CHEN , Del MYERS , Thomas LAI , Patrick Lothian NELSON , Juan Carlos AREVALO BAEZA , Kenneth Walter SYKES
IPC: G06F11/36
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).
-
-
-
-
-