Patent application number | Description | Published |
20080301649 | Debugger for virtual intermediate language operations - Various technologies and techniques are disclosed for testing intermediate language operations. A debugger harness is provided that instruments an intermediate language stream to replace intermediate language operations with equivalent virtual intermediate language operations. A particular intermediate language operation is intercepted from the intermediate language stream and the equivalent virtual intermediate language operation is determined. The virtual machine runs under a debugger harness so that one or more managed applications are executed using the equivalent virtual intermediate language operations. This allows a functionality of the debugger to be tested. | 12-04-2008 |
20090307528 | SIMULATING OPERATIONS THROUGH OUT-OF-PROCESS EXECUTION - The present invention extends to methods, systems, and computer program products for simulating operations through out-of-process execution. When a diagnostic operation is to be performed for a target execution context, a separate execution context is created based on the same executable code used to create the target execution context. An execution boundary separates the target execution context and the separate execution context such that execution in the separate execution context does not influence the behavior of the target execution context. State data from the target execution context is marshaled and transferred to the separate execution context. The separate execution context reconstitutes the state data and uses the state data to perform the diagnostic operation. Accordingly, performance of the diagnostic operation is simulated in the separate execution context without influencing the behavior of the target execution context. | 12-10-2009 |
20090319999 | SIMULATING STEPPING THROUGH INTERPRETED CODE - The present invention extends to methods, systems, and computer program products for simulating stepping through interpreted code. Embodiments of the present invention facilitate debugging interpreted code. Thus, existing debugger technologies (e.g., those configured for use with compiled code) can be utilized to debug interpreted code. More specifically, existing debugger technologies can be used to step through interpreted code, without stepping into the code of interpreter itself Accordingly, users developing interpreted code can be provided a stepping experience of relatively the same quality provided to developers developing compiled code, without having to reengineer debuggers to compensate for interpreted code. | 12-24-2009 |
20100153693 | CODE EXECUTION WITH AUTOMATED DOMAIN SWITCHING - Within the field of computing, many scenarios involve the execution of an instruction set within a domain that is configured to support an execution context. However, various portions of the instruction set may be preferably executed in different domains, such as for promoting performance and for providing debugging features like the ability to simulate execution of a debuggee function without incurring side-effects in the debuggee. Portions of the instruction set may therefore be executed in different domains by inserting domain switch points in the instruction set specifying a target domain. The instruction set may then initiate execution in an initial domain, and upon reaching a domain switch point, may transition to the target domain. In some embodiments, the domain switch points may be automatically inserted into the target instruction set based on various domain switch criterion, such as performance, reliability, and affinity of an instruction with a particular domain. | 06-17-2010 |
20100153927 | TRANSFORMING USER SCRIPT CODE FOR DEBUGGING - User script code that is developed to be run in a host application, for example, as a macro can be transformed into debuggable code so that the host application may continue to operate during a debugging stop operation. Traceback methods can be created that call back into the host application to allow the host application to cooperatively operate and update its user-interface. The user script code can be transformed by injecting callbacks to the traceback methods at respective locations in the code where a stopping operation may be installed during debugging. Further, two or more debugging features can be combined into a single user script code transform using an iterator pattern function. | 06-17-2010 |
20100153939 | REMAPPING DEBUGGABLE CODE - User script code that has been developed for execution in a host application can be remapped to debuggable script code, based on explicit debugging gestures, allowing for appropriate debugging coverage for the code while mitigating execution (in)efficiency issues. Capabilities of an application virtual machine used for the host application can be determined, and the user script code can be instrumented with guards for detecting explicit debugging gestures based on a virtual machine's (VM′) capabilities. The instrumented user script code can be executed in a runtime environment, for example, by a just-in-time compilation service. If an explicit debugging gesture is detected, a function where the gesture was detected can be transformed into debuggable script code, in one embodiment, based on the debuggable gesture detected. | 06-17-2010 |
20100161910 | STORED VALUE ACCESSORS IN SHARED MEMORY REGIONS - Instruction sets in computing environments may execute within one of several domains, such as a natively executing domain, an interpretively executing domain, and a debugging executing domain. These domains may store values in a shared region of memory in different ways. It may be difficult to perform operations on such values, particularly if a domain that generated a particular value cannot be identified or no longer exist, which may obstruct shared accessing of values and evaluative tasks such as stack walks. Instead, accessors may be associated with a stored value that perform various operations (such as low-level assembly instructions like Load, Store, and Compare) according to the standards of the value-generating domain, and domains may be configured to operate on the value through the accessors. This configuration may promote consistent accessing of values without having to identify or consult the value-generating domain or reconfiguring the instruction sets. | 06-24-2010 |
20100162049 | Low Privilege Debugging Pipeline - A low privilege debug pipeline publisher advertises a debugging pipeline. Instead of having a client to which a debugger on the server has been attached interrogate the server for debugging information, the client requests information from the server. Control is returned to the server which can refuse to provide the requested information to the client. A debuggee server executes client code being debugged in an isolated context so that pausing the code at a breakpoint does not block the server. The server can apply transforms to compiled code to make the code cooperate with debugging services so that a privileged component to inspect the debuggee code is not needed. | 06-24-2010 |
20100162212 | DEBUGGING PIPELINE - A debugging pipeline may be developed to create a debugging experience for computer code operating in an execution environment, using a debugging tool outside of the execution environment. A producer can publish a debugging pipeline, configured to link the producer to a consumer (e.g., a debugging tool) by exposing a debugging pipeline interface object to a consumer. The debugging pipeline can implement a set of debugging protocols, comprising: protocol for processing of debugging requests for computer code in at least one of at least two computer languages; a protocol configured for processing of computer code language types in respective signatures without exposing operating system specific constructs; and a protocol for a first debugging pipeline to be isolated from one or more second debugging pipelines. Additionally, a consumer component can provide debugging of the computer code in the execution environment. | 06-24-2010 |
20100180269 | DOMAINS WITH POLYMORPHIC TYPE IMPLEMENTATIONS - Various domains may wish to specify different implementations of the type; e.g., a compilation domain may describe the type statically, an execution domain may instantiate objects of the given type, while a debugging execution domain may associate additional debugging information such as a symbol name. This may be achieved by specifying a type implementation of a particular type within respective domains which all implement a common type interface. A type binding instruction set may then select a type implementation for the type within the target instruction set according to the domain, and may bind type instances of the type within target instruction set to the selected type implementation for the current domain. This technique yields domain-specific variance in type implementation without having to reconfigure the target instruction set or perform domain-checking logic there-within. | 07-15-2010 |
20110307872 | SCRIPT DEBUGGING - The present invention extends to methods, systems, and computer program products for script debugging. Embodiments of the invention serve as a plug-in to an existing debugger. The plug-in leverages the debuggers user-interface and engine. The plug-in can be a controller that subscribes to common notifications and is guided by a state machine, which stitches together a script control channel with an existing debug channel. | 12-15-2011 |
20110307874 | CREATING TEXT FUNCTIONS FROM A SPREADSHEET - The present invention extends to methods, systems, and computer program products for creating text functions form a spreadsheet. Embodiments of the invention extract functions from spreadsheets and represent the functions in textual form. Representation in textual form promotes code reuse, clarify, expressive power, and better performance. Text can be rendered in virtually any programming language, such as, for example, C#, C++, Visual Basic (“VB”), etc. In some embodiments, programming language extensibility to support spreadsheet compatible data types and functions is utilized. | 12-15-2011 |
20110314365 | DECOMPILING LOOPS IN A SPREADSHEET - The present invention extends to methods, systems, and computer program products for decompiling loops in a spreadsheet. Embodiments of the invention detect loops by walking a dependency graph on a spreadsheet. As nodes are encountered, sequences of the same formulas are looked for in a normalized representation of the spreadsheet (e.g., R1C1 notation). When the same formulas are identified, the formulas may represent a loop. The spatial structure of the cells is analyzed to determine which cells are to be stored in arrays and which cells can be loop carried dependencies. | 12-22-2011 |
20110314461 | IMPLEMENTING PARALLEL LOOPS WITH SERIAL SEMANTICS - The present invention extends to methods, systems, and computer program products for implementing parallel loops with serial semantics. Embodiments of the invention provide a semantic transforms and codegen patterns that provide more efficient parallel loop implementations with serial loop semantics. Embodiments of the invention support assignments within for-loop bodies, support break/return constructs within for-loop bodies, and run transformations to covert serial constructs to parallel constructs. | 12-22-2011 |
20120151452 | REMOTE DEBUGGING OF SERVER SIDE CODE WITHOUT BLOCKING OR HIGH-LEVEL PRIVILEGES - A server exposes debugger services to a plurality of debugger clients. One or more debugger clients can select a debug operation and establish a debug session in a thread of a server process for debugging user code. A two-way debug communication pipeline can be established between a debugger client and the server using standard encoding protocols and standard network transport protocols. A two-way debug communication pipeline can be established using HTTP where the server can initiate a communication with the debugger client using a long polling technique. When one of the threads of the server process is suspended, the other threads in the server process continue to execute. | 06-14-2012 |
20120159462 | METHOD FOR CHECKPOINTING AND RESTORING PROGRAM STATE - Techniques are described that enable restoring interrupted program execution from a checkpoint without the need for cooperation from the computer's operating system. These techniques can be implemented by modifying existing code using an automated tool that adds instructions for enabling restoring interrupted program execution. | 06-21-2012 |
20120311528 | REMAPPING DEBUGGABLE CODE - User script code that has been developed for execution in a host application can be remapped to debuggable script code, based on explicit debugging gestures, allowing for appropriate debugging coverage for the code while mitigating execution (in)efficiency issues. Capabilities of a virtual machine used for a host application can be determined, and the user script code can be instrumented with guards for detecting explicit debugging gestures based on capabilities of the virtual machine. The instrumented user script code can be executed in a runtime environment, for example, by a just-in-time compilation service. If an explicit debugging gesture is detected, a function where the gesture was detected can be transformed into debuggable script code, in one embodiment, based on the debuggable gesture detected. | 12-06-2012 |