Patent classifications
G06F11/3624
GLOBALLY UNIQUE ERROR CODES FOR KNOWLEDGE DOCUMENT INDEXING IN SOFTWARE SYSTEMS
Disclosed embodiments provide techniques for generating and using a Global Error-Code Sequence (GECS), with the role of generating, at request, a unique error identification number (ID). The scope of the unique identification number can include worldwide, company-wide, or a certain application ecosystem, such as eCommerce applications, etc. The GECS forms a strong correlation between an error condition and a known solution. While other logging signatures such as line numbers, stack traces, and addresses can change with new releases or invocations, the GECS enables a tighter coupling between an error condition and a knowledgebase document, which enables faster resolution of computer application problems and reduced downtime.
SEMI-SUPERVISED BUG PATTERN REVISION
Operations may include obtaining a plurality of posts from one or more web sites, each post including a respective buggy snippet of source code that includes a corresponding error. The operations may also include generating a plurality of bug patterns from the plurality of posts in which each respective bug pattern corresponds to a respective buggy snippet and indicates a corresponding bug scenario that leads to the corresponding error of the respective buggy snippet that corresponds to the respective bug pattern. The operations may also include determining similarities with respect to the respective bug patterns and selecting, based on the similarity determinations, a first bug pattern of the plurality of bug patterns for revision. In addition, the operations may include obtaining a revised bug pattern that is a revised version of the first bug pattern.
SOURCE CODE EDITING COMBINING EDIT AND CONTINUE WITH HOT RELOAD
A change to a first version of source code of an application that is running with a debugger attached is identified, resulting in a second version of the source code. It is determined whether the change occurred with corresponding software suspended or not. The change is applied to the software without restarting the software, based on applying the change using edit and continue (EnC) when the change occurred with the software suspended, or applying the change using hot reload when the change occurred with the software not suspended. Subsequently, the software is suspended, and debug state is presented. The presentation includes presenting the second version of the source code after EnC, or after hot reload and when the software is suspended in an updated memory entity; or presenting the first version of the source code after hot reload and when the software is suspended in a stale memory entity.
Replacing remote device functions
A software development infrastructure can enable user developers to select remote hardware devices to develop and test their software programs. For some tests and development activity, physical access to the remote device can be provided by the infrastructure administrator by replacing the internal calls of an application with mimic code, which can respond to application requests for sensor data, as if the user was physically handling the remote device at the same location.
Debugging quantum programs
This disclosure concerns tools and techniques for debugging a quantum program (e.g., a program used to configure and control a quantum computing device). Because the state space of a quantum program is so much larger and less structured than the state space for a classical program, new techniques are required to help the program developer and coder determine whether or not their program is working correctly and to identify errors if not. The disclosed technology provides tools and techniques for debugging quantum programs using a classical computer.
Detection of runtime errors using machine learning
Runtime errors in a source code program are detected in advance of execution by machine learning models. Features representing a context of a runtime error are extracted from source code programs to train a machine learning model, such as a random forest classifier, to predict the likelihood that a code snippet has a particular type of runtime error. The features are extracted from a syntax-type tree representation of each method in a program. A model is generated for distinct runtime errors, such as arithmetic overflow, and conditionally uninitialized variables.
Pathname independent probing of binaries
A system includes one or more processors in communication with a memory and configured to receive a task to probe a portion of the memory associated with a version of a binary file during execution of the binary file. The task includes a portion of object code and a hash identifier, both associated with the version of the binary file. A database mapping hash identifiers to debug information associated with installed binary files is accessed. Debug information for the version of the binary file associated with the hash identifier is retrieved. A probing application is built using the debug information and the portion of object code. Upon execution of the version of the binary file, the probing application places the object code into the portion of the memory.
DATA RACE DETECTION WITH PER-THREAD MEMORY PROTECTION
Data race detection in multi-threaded programs can be achieved by leveraging per-thread memory protection technology in conjunction with a custom dynamic memory allocator to protect shared memory objects with unique memory protection keys, allowing data races to be turned into inter-thread memory access violations. Threads may acquire or release the keys used for accessing protected memory objects at the entry and exit points of critical sections within the program. An attempt by a thread to access a protected memory object within a critical section without the associated key triggers a protection fault, which may be indicative of a data race.
Forensic Data Collection and Analysis Utilizing Function Call Stacks
A novel compiler is described. The compiler is able to view source code of the application in its entirety and can do so from the inside. Unlike other tools which examine the forensic data from an application crash after the fact, from the outside, the compiler of the present invention can provide novel data on function call stacks and function profiles during runtime. The application may be stopped immediately during runtime to prevent further or potential damage, but the forensic data that is collected is focused and can be used to show where vulnerabilities exists in the application and how they were exploited. Hashes are taken of function call stacks and used as unique identifiers or thumbprints which can be used to reduce the volume of forensic data that needs to be analyzed after an attack.
Method, Apparatus, and System for Blaming a Test Case/Class for a Survived Mutation
A method and apparatus for upgrading libraries in a source code program by evaluating libraries in the source code program for predetermined selection criteria specifying library performance limitations to identify at least a first library which does not meet the plurality of predetermined selection criteria and then identifying a first alternative library that is suitable for substitution for the first library so that the source code program may be automatically modified to replace the first library with the first alternative library, thereby generating a modified source code program having an upgraded library functionality.