This interface can create, add, or remove a virtual application from a process. Primary interface to the process debug manager. Maintains a debugger thread for asynchronous processing.Ĭommunicates with the machine debug manager and the debugger IDE.įollowing are the interfaces provided by the process debug manager. Maintains a tree of debuggable documents.Ĭoordinates breakpoints and stepping across language engines. Synchronizes the debugging of multiple language engines. IDebugStackFrameSnifferEx InterfaceĮnumerates the logical stack frames for the PDM. IDebugFormatter InterfaceĪllows a language or IDE to customize the conversion between VARIANT values or VARTYPE types and strings. Provides a way to enumerate expression contexts known by a certain component. IEnumDebugExpressionContexts InterfaceĮnumerates a collection of IDebugExpressionContexts objects. Provides status events related to progress of an IDebugAsyncOperation interface evaluation. Provides asynchronous access to a synchronous debug operation. IDebugSyncOperation InterfaceĪllows a script engine to abstract an operation that needs to be performed while nested in a particular blocked thread. Represents an asynchronously evaluated expression. Provides a way to enumerate logical stack frames. Provides context in which expressions can be evaluated. Represents a logical stack frame on the thread stack. IEnumDebugCodeContexts InterfaceĮnumerates the code contexts that correspond to a document context. Provides a virtual "instruction pointer" in a thread. Host provided link from script engine to debugger. Returns document contexts and stack frames for errors. Provides syntax coloring and code context enumeration. These interfaces are used by the host application to map between its document context and the engine's code contexts, and also by the debugger UI to do expression evaluation, stack enumeration, and object browsing. object browsingĪ structured, language-independent representation of an object's name, type, value, and sub-objects, suitable for implementing a "watch window" UI.īelow is an overview of each of the key Active Debugging components and corresponding, associated interfaces, followed by the details of those interfaces.ĭebugging support (breakpoints and so on).īelow are the interfaces that a script engine needs to support to provide debugging, expression evaluation, and object browsing. code contextĪ code context represents a particular location in the running code of a language engine (a "virtual instruction pointer".) expression contextĪ particular context (for example, a stack frame) in which expressions may be evaluated by a language engine. document contextĪ document context is an abstraction representing a specific range in the source code of a host document. process debug managerĪ component that maintains the tree of debuggable documents for a particular application, tracks the running threads, and so on. machine debug managerĪ component that maintains a registry of debuggable application processes. The application that provides debugging UI by communicating with the host application and language engines. language engineĪ component that provides parsing, execution, and debugging abstractions for a particular language. The application that hosts the script engines and provides a scriptable set of objects (or "object model"). However, before proceeding further, several key Active Debugging concepts must be defined: host application In the subsections below, each key component in Active Debugging and its associated interfaces are discussed. For example, Internet Explorer can show a script in an HTML page. This allows the debugged source code to be shown in the context of the host document. The host controls what the debugger presents to the user, from the structure of the document tree to the contents and syntax coloring of the debug documents. (This overview focuses primarily on support scripting languages, such as VBScript and JavaScript.)Ī host-neutral debugger can be automatically used with any Active Scripting host, such as Internet Explorer or a custom host. The debugging environment also supports cross-language stepping and breakpoints. A language-neutral debugging environment can support any programming language or mix of programming languages, without having specific knowledge of any of those languages.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |