摘要:
An application programming interface (API) that leverages operating system instrumentation to provide a chain of threads and processes may alleviate some debugging complications. Specifically, the chain may start with the first thread in the process that experienced the original failure and end with the last thread upon which the first thread directly or indirectly depends. The API may aid debugging efforts by classifying all threads related or dependent upon an original failed thread into specific categories of failures, requesting further information from the originating OS concerning specific failed threads, and using that information to debug the failed application or process more thoroughly.
摘要:
An application programming interface (API) that leverages operating system instrumentation to provide a chain of threads and processes may alleviate some debugging complications. Specifically, the chain may start with the first thread in the process that experienced the original failure and end with the last thread upon which the first thread directly or indirectly depends. The API may aid debugging efforts by classifying all threads related or dependent upon an original failed thread into specific categories of failures, requesting further information from the originating OS concerning specific failed threads, and using that information to debug the failed application or process more thoroughly.
摘要:
An application programming interface (API) that leverages operating system instrumentation to provide a chain of threads and processes may alleviate some debugging complications. Specifically, the chain may start with the first thread in the process that experienced the original failure and end with the last thread upon which the first thread directly or indirectly depends. The API may aid debugging efforts by classifying all threads related or dependent upon an original failed thread into specific categories of failures, requesting further information from the originating OS concerning specific failed threads, and using that information to debug the failed application or process more thoroughly.
摘要:
In embodiments of the invention, selected aspects of a process' call stacks are hashed, and the hash is used to capture the execution state of the process in a concise form and with minimal impact on the performance of the process and with no modification to the process code. The hash allows vendors and developers to classify failures in order to associate them with their known root causes to support rapid customer feedback and to maximize efficiency of correction. Further, the hash provides a metric usable to prioritize diagnosis of failures. In an embodiment of the invention, the identities of modules on the call stack are hashed in combination with some but not all offset information to minimize the affect of patches and minor changes to the code, and improve the ability to discriminate different execution paths.
摘要:
A large portion of software bugs are related to hangs. Analyzing and diagnosing hang-related bugs involves capturing data from a hung program and extracting attributes from the captured data. Extracting attributes from the capture data provides a scheme to determine relevant characteristics of the hang. Moreover, the extracted attributes may be compared to known issues and, based on that comparison, a bug may be classified as known or unknown. Alternatively, triage may be performed on the client computing device in order to determine the potential cause of the hang event. Once the potential cause of the hang event has been determined, troubleshooting steps may be performed on the client computing device to quarantine it. Ultimately, if the hang-inducing bug is known, a user may be provided with a solution to the bug. Alternatively, if the bug is unknown, implementations of the invention send the captured data to be analyzed and fixed by the software's provider.
摘要:
An exemplary policy management layer includes a policy module for a web-based service where the policy module includes logic to make a policy-based decision and an application programming interface (API) associated with an execution engine associated with resources for providing the web-based service, where the API is configured to communicate information from the execution engine to the policy module and where the API is configured to receive a policy-based decision from the policy module and to communicate the policy-based decision to the execution engine to thereby effectuate policy for the web-based service. Various other devices, systems, methods, etc., are also described.
摘要:
Techniques and tools for implementing a source code annotation language are described. In one aspect, keywords are added to a function interface to define a contract for the function independent of function call context. In another aspect, annotations are inserted at global variables, formal parameters, return values, or user-defined types. The annotations include, for example, properties and qualifiers. A property can indicate, for example, a characteristic of a buffer. In another aspect, an annotation indicates that a value has usability properties sufficient to allow a function to rely on the value, where the usability properties depend on value type.