Patent application number | Description | Published |
20080209401 | Techniques for integrating debugging with decompilation - Various technologies and techniques are disclosed for integrating debugging with decompilation. A debugger integrated with a decompiler is provided. The system determines a need to debug at least a portion of an application for which necessary debug information is not available. A decompile process is performed to decompile a binary into a decompiled source code in a particular language. A symbol file is generated that maps code sequence execution points to the decompiled source code. The decompiled source code and the symbol file are provided to the debugger. The debugging then continues using the decompiled source code. The user is able to debug applications when source code and symbol files are not available, and/or when the user prefers to debug in a different language than the language of the available source code. | 08-28-2008 |
20080320457 | Intermediate Code Metrics - Metrics may be determined from intermediate computer code by reading and analyzing an entire application using intermediate code, including any linked portions. The metrics may include cyclomatic complexity, estimated or actual number of lines of code, depth of inheritance, type coupling, and other metrics. The metrics may be combined into a quantifiable metric for the code. | 12-25-2008 |
20090144698 | PRIORITIZING QUALITY IMPROVEMENTS TO SOURCE CODE - An exemplary method includes receiving source code having a plurality of code segments, providing a desired level of quality for the source code, analyzing the source code to assign a complexity measure to each of the plurality of code segments and assigning a level of code coverage to each of the plurality of code segments based at least in part on the desired level of quality and the complexity measures. An exemplary system prioritizes quality improvements to source code based, in part, on a quality assessment. Such a system can improve code quality by assigning higher test coverage levels to modules with higher complexity. | 06-04-2009 |
20100083238 | Binary manipulation of intermediate-language code - One or more embodiments, described herein, are directed towards a technology for performing transformations and/or modifications to managed byte code. In order to perform the transformations and/or modifications, a mutable programmable representation (MPR) is laid out. A programmer then performs an arbitrary adjustment using the MPR. | 04-01-2010 |
20100088669 | LOGICAL EXTENSIONS TO INTERMEDIATE CODE - An assembly aggregate comprising a virtual, logical view of an arbitrarily defined collection of intermediate code and metadata can be authored, factored, accessed, modified, and distributed. Multiple physical containers of assembly information can be aggregated to create a single logical assembly called an assembly aggregate. An assembly can thus be redefined as a logical view against (or projection over) the assembly aggregate. Such an assembly can be targeted to the requester: that is, an assembly can be redefined according to tool and/or execution context rather than conforming to explicit or implicit requirements enforced by the runtime. | 04-08-2010 |
20100211865 | CROSS-BROWSER PAGE VISUALIZATION GENERATION - Many web developers spend significant time investigating and/or mitigating inconsistencies that may present when a web page is rendered across different browsers. Most websites are developed for multiple versions of one or more web browser and/or for multiple versions of one or more platforms. As provided herein, a cross-browser page visualization may be generated. A visualization may comprise a Document Object Model (DOM) associated with a screenshot image of a web page rendered within an available browser. Multiple visualizations may be created using locally installed browsers and/or remote browsers. The visualizations provide high-fidelity browser renderings coupled with underlying styling and/or DOM information that may be used to interrogate and/or annotate the screenshot image, thus allowing a web page to be developed that can be desirably rendered on different browsers, different operating systems and/or on different versions of the same. | 08-19-2010 |
20100211893 | CROSS-BROWSER PAGE VISUALIZATION PRESENTATION - Web developers devote significant time and resources to investigating and mitigating inconsistencies that may present when a web page is rendered across different browsers. As provided herein, a cross-browser page visualization may be presented, which comprises one or more screenshot images of a web page rendered with different browsers, coupled with underlying styling and/or Document Object Model representation data. This allows for powerful page visualization and/or feature analysis. For example, rendering inconsistencies may be easily (or even automatically) detected and/or corrected. | 08-19-2010 |
20110113405 | AUTOMATED METHOD AND SYSTEM FOR COLLECTING AND REPORTING API PERFORMANCE PROFILES - A method to measure the performance of an Application Programming Interface (API) includes selecting a target API and tracking memory allocation for the functional calls of the selected API to generate a list of functions called by the API. The individual functions are then called within the API in isolation and timing and memory allocation data for each are collected and recorded. The recorded results are then bucketized according to a log base 2 method and made accessible by API users to indicate the performance of specific APIs. | 05-12-2011 |
20120266141 | API DESCRIPTIONS - API description techniques are described for consumption by dynamically-typed languages. In one or more implementations, machine-readable data is parsed to locate descriptions of one or more application programming interfaces (APIs). The descriptions of the one or more application programming interfaces are projected into an alternate form that is different than a form of the machine-readable data. | 10-18-2012 |
20120311533 | EDITOR VISUALIZATION OF SYMBOLIC RELATIONSHIPS - Enhancing dynamic code. A method includes obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. Using the identifier information and augmented knowledge, metadata about the body of the dynamic language source code is generated. The generated metadata is represented as a symbol table. The body of dynamic language source code is visually enhanced based on the symbol table structure. | 12-06-2012 |
20120311535 | STATIC SEMANTIC ANALYSIS OF DYNAMIC LANGUAGES - Analyzing dynamic source code. A method includes accessing a specific metadata format data structure. The data structure was created by obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. The metadata format data structure is parsed to compute metrics about the metadata format data structure. The metrics about the metadata format data structure are provided to a user. | 12-06-2012 |
20120311536 | STATICALLY DERIVED SYMBOLIC REFERENCES FOR DYNAMIC LANGUAGES - Creating metadata for dynamic code in a descriptive metadata language. The method includes obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. Metadata about the body of the dynamic language source code is provided, with the source code, in a specific metadata format, to a user. | 12-06-2012 |
20120311540 | PATH-SENSITIVE VISUALIZATIONS OF AGGREGATED PROFILING AND TRACE DATE - Performing tracing functionality. A method includes collecting runtime information that describes the execution of code. The collected runtime information is correlated to specific lines of code and one or more paths taken to get to specific lines of code. User input is received defining a view preference. A code visualization is provided based on the user input defining a view preference and the act of correlating the collected runtime information to specific lines of code and a path taken to get to the line of code. | 12-06-2012 |
20120311546 | TRANSFORMING DYNAMIC SOURCE CODE BASED ON SEMANTIC ANALYSIS - Transforming dynamic code. The method includes obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. Using the identifier information and augmented knowledge, metadata is generated about the body of the dynamic language source code. The generated metadata is represented as a symbol table. Using the symbol table, the body of dynamic language source code is transformed. | 12-06-2012 |
20120331374 | LINKING SOURCE CODE TO RUNNING ELEMENT - A method includes parsing a text source document to construct a document node tree such that the document node tree includes text offsets indicating the location of the text within the text source document corresponding to each node of the document node tree. The method includes constructing, from the document node tree, a Document Object Model (DOM) and a view node tree that represents the DOM. The constructing of the view node tree includes mapping the view node tree to the document node tree. The method includes providing a running representation of the DOM such that DOM elements of the DOM are linked to the text within the text source document corresponding to the DOM elements via the view node tree and the document node tree. | 12-27-2012 |
20120331375 | DYNAMICALLY UPDATING A RUNNING PAGE - A method includes parsing a text source document to construct a document node tree such that the document node tree includes text offsets indicating the location of the text within the text source document corresponding to each node of the document node tree. The method includes constructing, from the document node tree, a Document Object Model (DOM) and a view node tree that represents the DOM. The constructing of the view node tree includes mapping the view node tree to the document node tree. The method includes providing a running representation of the DOM and one of tracking a modification to the DOM to provide first change information and tracking a modification to the text source document to provide second change information. | 12-27-2012 |
20130159967 | AVAILABLE SYMBOL SET GENERATION USING UNTYPED VARIABLE - The facilitated computation of an available symbol set at code locations in a dynamic language program, in which the program is executed up to a particular halt point for which an available symbol set is to be generated. At the halt point, a type of a value of a particular variable may be used in order to generate the available symbol set. However, at the halt point, the variable does not yet have a value of a useful type (e.g., null or undefined), which is possible in a dynamic language program. Rather than return an error, the principles described herein returns an arbitrary symbol set anyway. Specifically, the variable had previously been annotated with information represented accessed type information for the variable, even though the variable has not formally been defined. This annotated information may be used to generate the available symbol set. | 06-20-2013 |
20130159968 | LANGUAGE SERVICE PROVIDER MANAGEMENT USING APPLICATION CONTEXT - A language service provider framework that generates an application context of a dynamic language program being authored. The application context includes a description of the dynamic language application being authored, one or more specific locations within the program, and runtime environment information. A language service provider port component holds one or more language service providers. Each language service provider may receive the application context and generate a set of available symbols corresponding to each of at least one of the identified one or more specific locations. A management component receives the application context from the application context generation component, provides the application context the language service provider, and correspondingly receives the available symbol set from the language service provider. Since the management component provides an application context that also includes runtime environment information, the available symbol set may be more accurately represented, thereby facilitating authoring of dynamic language programs. | 06-20-2013 |
20130159976 | ABSTRACT SYNTAX TREE TRANSFORMATION - The transformation of an abstract syntax tree of a dynamic language program at evaluation time in a manner that is helpful for evaluating the program. For instance, the abstract syntax tree may be altered such that metadata is attached to variables generated during execution. The tree might also be altered to force code to execute faster or more likely than would occur otherwise. This might occur so that the dynamic language program might be executed at authoring time up to a halt point that represents a point of interest to the author. Without transformation of the abstract syntax tree, the execution might have not proceeded to the halt point or might have taken a long time. Once at the halt point, the program state at the halt point may be evaluated, allowing the program to perform functions such as generating an available symbol set at the halt point. | 06-20-2013 |
20130159978 | STATE CAPTURE AFTER EXECUTION IN DEPENDENT SEQUENCES - The execution of a dynamic code segment sequence that includes at least two code segments in sequence. The first code segment is first executed and the corresponding state of the environment is captured. The second code segment is then executed. When the second code segment is later re-executed, the first code segment is not re-executed again. Rather, the environmental state is set to be the captured state that existed when the first code segment originally executed. Then, the second code segment may be executed without spending the resources required to re-run the first code segment. This may be employed at authoring time, or after deployment time. | 06-20-2013 |
20130212595 | DYNAMIC INJECTION OF CODE INTO RUNNING PROCESS - Techniques are described herein that are capable of dynamically injecting code into a running process. For instance, the techniques are capable of causing arbitrary code to be activated in the process while the process is running in response to receipt of a request for dynamic execution of the arbitrary code from outside the process while the process is running. | 08-15-2013 |
20130246417 | MEMORY USAGE DATA COLLECTION AND ANALYSIS FOR DYNAMIC OBJECTS - A script engine for a dynamic language can collect memory allocation information for dynamic objects created by the scripting engine and for dynamic objects created by the script engine host. A native interface can be exposed to a client comprising a software development tool. The software development tool can be a third-party tool. In response to a query, the script engine can take a snapshot of a garbage collector heap and return an object record for each dynamic object in the heap. The object information can include memory allocation information, object type and other information. Multiple snapshots can be taken and the delta between snapshots can be determined and sent to a requestor. | 09-19-2013 |
20130249917 | PROFILE DATA VISUALIZATION - Profile data is visualized in a number of ways to visually communicate program performance issues and facilitate analysis thereof. In one instance, a plurality of correlated visualizations can be presented that provide different types of views of program profile data. Further, logically grouped profile data can be presented to enable meaningful analysis of program execution. Visualizations can also reflect the state of profile data with respect to designated performance goals, and mechanisms are provided to enable recording and playback profile data, among other things. | 09-26-2013 |
20130263102 | LOGICAL GROUPING OF PROFILE DATA - Profile data can be ascribed to groups as a function of an organizational scheme that defines groups and relationships between groups. The groups can be abstractions over profile data that are meaningful for computer program analysis. Subsequently, grouped data can be disseminated, queried, and visualized in numerous ways to further aid program analysis. | 10-03-2013 |
20130311973 | Assisting Development Tools Through Inserted Code Statements - Aspects of the subject matter described herein relate to assisting development tools. In aspects, statements that influence runtime behavior may be inserted into code of a program. For example, a statement inserted into a function may set a property of a runtime object to indicate that a debugger is to be notified for exceptions that are encountered within the scope of the function. When a runtime environment encounters an exception, the runtime environment may determine whether the property applies to the currently-executing scope. If so, the runtime environment may notify or not notify a development tool of the exception based on the value of the property. | 11-21-2013 |
20130326490 | IN-PROCESS WRAPPED EXECUTION ENGINE(S) FOR TOOLING A DYNAMIC PROGRAM ACROSS A PROCESS BOUNDARY - Techniques are described herein that are capable of instantiating and executing in-process wrapped execution engine(s) for tooling a dynamic program across a process boundary. For instance, a dynamic language execution engine may be instantiated in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running. The wrapped execution engine may be configured to provide information regarding execution of a targeted application of the host process to a requesting application. The wrapped execution engine may be isolated from other execution engine(s) that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine. The targeted application may include one or more of the other execution engines. | 12-05-2013 |
20140053142 | Imperative Attribution for Elements in Managed Runtimes - Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. The metadata may be associated with lookup data that identifies the metadata. The lookup data may be formed from an identifier supplied by an imperative statement and an identifier of a logical element which may be explicitly or implicitly supplied. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed. | 02-20-2014 |
20140068544 | OBTAINING METADATA SET BY IMPERATIVE STATEMENT - Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. A metadata consumer may request the metadata. A metadata identifier of the metadata requested may be provided implicitly or explicitly. A parameter that indicates how to obtain the metadata may also be provided. In response, the metadata may be obtained and provided. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed. | 03-06-2014 |
20140075451 | INTER-PROCESS COMMUNICATION CHANNEL - Techniques are described herein that are capable of constructing an inter-process communication channel, for example, between a requesting component and a targeted process. The communication channel may have one or more links, such that each link is defined by a respective node pair in a plurality of nodes. The plurality of nodes includes the requesting component, the targeted process, and optionally one or more intermediate nodes. An attachment request is received via a user interface. The requesting component is attached to the targeted process. For instance, the links may be traversed to discover the targeted process. The communication channel is established. For instance, in each node of a subset of the plurality of nodes, node information may be retained to indicate a next consecutive node of the plurality of nodes to which messages from the requesting component to the targeted process are to be delivered. | 03-13-2014 |
20140082595 | CONTEXT BASED CODE ANALYSIS - Embodiments provided a formalized set of intermediate analysis contexts that are relevant for analysis checks of target code. Such intermediate analysis context may include, but are not limited to, the development phase of targeted code, the type or state of the targeted code, a source manipulating the targeted code, a purpose for the targeted code, or other development or runtime requirements. Accordingly, embodiments dynamically identify a current analysis context under which targeted code is being developed and can then execute rules based on knowledge of what contexts the rule(s) may apply. More specifically, analysis rules can describe (e.g., via metadata) those context conditions under which a rule can run. Based on such description and the current context, those rules that have been configured to apply to such context conditions can be executed. | 03-20-2014 |
20140109106 | CODE DEPENDENCY CALCULATION - Generation of a dependency graph for code that includes code portions such as resources or functions or both. For some or all of the nodes, the dependency is calculated by determining that the given node, a depending node, depends on an affecting node. The dependency is recorded so as to be associated with the node. Furthermore, the dependency calculation method is recorded so as to be associated with the dependency. The code may perhaps include portions within two different domains, in which the mechanism for calculating dependencies may differ. In some cases, the dependency graph may be constructed in stages, and perhaps additional properties may be associated with the node, and metadata of the properties may also be recorded. | 04-17-2014 |
20140181592 | DIAGNOSTICS OF DECLARATIVE SOURCE ELEMENTS - A method for diagnosing declarative source elements in an application, such as in debugging markup source elements or visual elements in an application, is disclosed. Diagnosis information is associated with an object source of a visual element. The diagnosis information is provided for the visual element during the runtime of the application. | 06-26-2014 |
20140181792 | Program Analysis Based on Program Descriptors - A deployment package descriptor may be obtained. One or more application files that include application content in a plurality of different data formats may be obtained. An analysis of the application content included in the obtained one or more application files may be initiated, based on a plurality of different data formats and descriptive information associated with the obtained application files, the descriptive information included in the obtained deployment package descriptor. | 06-26-2014 |
20140189662 | Extending A Development Environment - Concepts and technologies are described herein for extending the behavior of a software development tool. An extension can be accessed and consumed by a software development tool to configure the software development tool to perform an operation in an extended mode. In one example, an extension can extend a compiler based on the input source code. In one configuration, the compiler extension can provide a compiler with one or more runtime semantics of various source code elements for a particular programming language. The compiler can access an extensions list to determine if the compiler is to perform a compilation operation on a particular source code element or logical unit in an extended mode. | 07-03-2014 |
20140282427 | DIAGNOSTICS OF STATE TRANSITIONS - A method for diagnosing computer readable instructions related to transfers of control is disclosed. A state transition of a unit of execution within a logical operation is logged during runtime of the computer readable instructions. Diagnostic information of the logical operation is associated with the state transition. The state transition and associated diagnostic information is provided for retrieval at a selected point in the computer readable instructions. | 09-18-2014 |
20140283096 | VALIDATING NORMALIZED CODE REPRESENTATIONS - A request that includes an indication of an execution context and data that represents executable code is obtained. An analysis of the data is initiated based on generating a first templatized representation of the executable code. A list of clearance indicators that indicate a blocking status associated with respective forms of templatized representations is accessed. A workflow policy is determined based on the accessing of the list of clearance indicators. The list of clearance indicators is updated, based on a result of the analysis of the data. | 09-18-2014 |
20140358961 | GRID QUERIES - Aspects of the subject matter described herein relate to grid queries. In aspects, a client sends search criteria that represent two or more dimensions to a service. The service obtains results that satisfy the search criteria and performs intersection operations to populate a data grid. The data grid is then returned to the client for output on an output device of the client. The client may provide a user interface that allows quick updating of the search criteria to obtain a new data grid. | 12-04-2014 |
20140372988 | Using a Static Analysis for Configuring a Follow-On Dynamic Analysis for the Evaluation of Program Code - The use of a static analysis for configuring a follow-on dynamic analysis for the evaluation of program code is provided. A request may be received for configuring a static analysis session for the evaluation of the program code. The static analysis may be executed and an output may be produced therefrom. The output may be analyzed to determine whether a dynamic analysis is needed for resolving code ambiguities in the program code. If it determined that the dynamic analysis is needed, then the dynamic analysis of the program code is initiated. | 12-18-2014 |