Abstract:
A debugger is used in an environment of optimized compiling to track both user-defined and synthesized variables so that the values of these variables at selected programmer counter addresses can be either determined or set. The tracking is primarily accomplished by the generation of various interrelated tables including a Type Scope Table, a Name Space Table, an Expression Table, a Location Range Table and a Variable Table. These tables define the existence of variables at defined program counter ranges and provide the algebraic definitions for the synthesized variables. A programmer can efficiently debug a program produced with optimized compiling through the operations of determining variable values and setting variable values.
Abstract:
A method translates the native machine codes that do not allocate memory for metadata, do not store, and do not propagate metadata by augmenting them with extra instructions to allocate memory for metadata, to store, and to populate metadata such that metadata are readily available at run time for checking programming errors.
Abstract:
A method for managing the execution of an optimized code, having at least one mode of the following modes in which an optimized code is executed from a current statement until : A) reaching a first instruction of the statement that is follow-by-optimized to the current statement; B) reaching a first instruction of the closest follow-by-source statement which also is follow-by-optimized to the current statement; C) reaching an instruction of the follow-by-optimized statement which also is follow-by-source to the current statement; D) reaching a statement that is follow-by-optimized to the end of the current statement; E) reaching a first instruction of a statement that is follow-by-optimized to all statements which are previous-by-source to the current statement and belong to some source flow path terminating at the current statement. The method comprises of the steps of: 1) receiving at least a description of flow graphs of the optimized code and of a source code from which the optimized code was originated; receiving additinal information that maps said flow graphs; and 2) managing the execution of the optimized code according to a selected mode and to at least one matched breakpoints being set along at least one path of the optimized flow graph.
Abstract:
The invention concerns the general data value problem, and especially the residence problem in a computer system when executing program code translated from a source code representation (10) into a target code representation (30). A basic idea of the invention is to associate references to target data value containers (40) in the target code with corresponding address information of original data value containers (20) of the source code during program code translation, and store information related to target code instructions together with associated address information of original data value containers at execution of target code to uphold a data value view (50) of the original source code representation. In this way, tracking of data values of original source code (10) at execution of translated target code (30) in a target system is supported in a highly efficient manner.
Abstract:
A system for testing a software application receives one or more object spaces extracted from a development or runtime environment of the software application. The extracted object space includes information about various objects associated with the software application, its dependencies, and/or environment, and some of the objects may be dynamically created and/or modified. The extracted object space does not include any source code. A language dependent extraction component can extract the object space using introspections and/or reflection APIs. The extracted object can be translated into a language- independent format and can be analyzed to identify any vulnerabilities in the software application without access to the source code, compiled binary, and runtime environment of the software application.
Abstract:
There is provided a system and method for providing an integrated environment for execution monitoring and profiling of applications running on multi- processor system-on-chips. There is provided a method comprising obtaining task execution data of an application, the task execution data including a plurality of task executions assigned to a plurality of hardware resources, showing a scheduler view of the plurality of task executions on a display, receiving a modification request for a selected task execution from the plurality of task executions, reassigning the plurality of task executions to the plurality of hardware resources based on implementing the modification request, and updating the scheduler view on the display. As a result, the high level results of specific low level optimizations may be tested and retried to discover which optimization routes provide the greatest benefits.
Abstract:
There is provided a system and method for providing an integrated environment for execution monitoring and profiling of applications running on multi- processor system-on-chips. There is provided a method comprising obtaining task execution data of an application, the task execution data including a plurality of task executions assigned to a plurality of hardware resources, showing a scheduler view of the plurality of task executions on a display, receiving a modification request for a selected task execution from the plurality of task executions, reassigning the plurality of task executions to the plurality of hardware resources based on implementing the modification request, and updating the scheduler view on the display. As a result, the high level results of specific low level optimizations may be tested and retried to discover which optimization routes provide the greatest benefits.
Abstract:
A method and system for debugging an executing service on a pipelined CPU architecture are described. In one embodiment, a breakpoint within an executing service is set and a minimum state of the executing service is saved. In addition, a program counter of the executing service is altered. The program counter is restored and the state of the executing service is restored.