EMULATING POINTERS
    1.
    发明申请
    EMULATING POINTERS 有权
    模拟点

    公开(公告)号:US20120167062A1

    公开(公告)日:2012-06-28

    申请号:US12979094

    申请日:2010-12-27

    IPC分类号: G06F9/45

    CPC分类号: G06F9/455 G06F8/434

    摘要: The present invention extends to methods, systems, and computer program products for emulating pointers. Pointers can be emulated by replacing the pointers with a pair and replacing each dereference site with a switch on the tag and a switch body that executes the emulated pointer access on the corresponding variable the pointer points to. Data flow optimizations can be used to reduce the number of switches and/or reduce the number of cases which need be considered at each emulated pointer access sites.

    摘要翻译: 本发明扩展到用于模拟指针的方法,系统和计算机程序产品。 可以通过用对替换指针来替换指针,并使用标签上的开关替换每个解引用站点,以及在指针指向的相应变量上执行仿真指针访问的交换机主体。 可以使用数据流优化来减少交换机的数量和/或减少在每个仿真指针访问站点需要考虑的情况的数量。

    Threading and communication architecture for a graphical user interface
    2.
    发明授权
    Threading and communication architecture for a graphical user interface 有权
    用于图形用户界面的线程和通信架构

    公开(公告)号:US06823518B1

    公开(公告)日:2004-11-23

    申请号:US09690675

    申请日:2000-10-17

    IPC分类号: G06F954

    CPC分类号: G06F9/451

    摘要: A system and method to facilitate communication between a user interface and an associated process is disclosed. A first thread is associated with the user interface and a second thread is associated with the process for implementing requests by the user interface. At least one state buffer is operable to store state data for controlling ownership to the state buffer by the first and second threads for communicating data between the first and second threads. The architecture may be used in connection with a debugging system, such as to facilitate responsive interaction between the GUI and the associated debugging system.

    摘要翻译: 公开了一种促进用户界面和关联过程之间的通信的系统和方法。 第一个线程与用户界面相关联,第二个线程与用于实现用户界面的请求的过程相关联。 至少一个状态缓冲器可操作以存储用于通过第一和第二线程控制对状态缓冲器的所有权的状态数据,用于在第一和第二线程之间传送数据。 该架构可以与调试系统结合使用,以便于GUI和相关联的调试系统之间的响应交互。

    Chaining actions for a directed graph
    3.
    发明授权
    Chaining actions for a directed graph 有权
    有向图的链接动作

    公开(公告)号:US06738777B2

    公开(公告)日:2004-05-18

    申请号:US09681072

    申请日:2000-12-20

    IPC分类号: G06F1730

    摘要: A plurality of actions are applied to a directed graph, where the directed graph has a plurality of nodes. A node in the directed graph is traversed to, and an specific method for each of the plurality of actions is performed on the traversed-node. The traversing and performing are repeated until all nodes in the directed graph have been traversed to. Only a single traversal of the directed graph need be performed to apply all of the actions to the directed graph. The plurality of the actions are in the form of a chain. Each action has an action object pointer, and the actions include a base action at a tail end of the chain and at least one chain action at a head end of the chain. The action object pointer of each chain action points to an immediately adjacent action toward the tail end of the chain, and the action object pointer of the base action points to the chain action at the head end of the chain.

    摘要翻译: 有向图被应用于有向图,其中有向图具有多个节点。 遍历有向图中的节点,并且对遍历到节点执行针对多个动作中的每一个的动作特定方法。 重复遍历和执行,直到有向图中的所有节点都被遍历。 只需执行有向图的单次遍历即可将所有动作应用于有向图。 多个动作是链的形式。 每个动作都有一个动作对象指针,并且动作包括在该链的尾端的基本动作,以及在该链的头端的至少一个链动作。 每个链动作的动作对象指针指向与链的尾端紧密相邻的动作,并且基本动作的动作对象指针指向链头端的链动作。

    Automatic root cause analysis and diagnostics engine
    4.
    发明授权
    Automatic root cause analysis and diagnostics engine 有权
    自动根本原因分析和诊断引擎

    公开(公告)号:US07191364B2

    公开(公告)日:2007-03-13

    申请号:US10713867

    申请日:2003-11-14

    IPC分类号: G06F11/00

    摘要: A large portion of software bugs are related to hangs. Analyzing and diagnosing hang-related bugs involves capturing data from a hung program and extracting attributes from the captured data. Extracting attributes from the capture data provides a scheme to determine relevant characteristics of the hang. Moreover, the extracted attributes may be compared to known issues and, based on that comparison, a bug may be classified as known or unknown. Alternatively, triage may be performed on the client computing device in order to determine the potential cause of the hang event. Once the potential cause of the hang event has been determined, troubleshooting steps may be performed on the client computing device to quarantine it. Ultimately, if the hang-inducing bug is known, a user may be provided with a solution to the bug. Alternatively, if the bug is unknown, implementations of the invention send the captured data to be analyzed and fixed by the software's provider.

    摘要翻译: 大部分的软件错误与挂起有关。 分析和诊断挂起相关的错误涉及从挂起的程序捕获数据并从捕获的数据中提取属性。 从捕获数据中提取属性提供了一种确定挂起的相关特征的方案。 此外,提取的属性可以与已知问题进行比较,并且基于该比较,错误可以被分类为已知或未知的。 或者,可以在客户端计算设备上执行分类,以便确定挂起事件的潜在原因。 一旦确定了挂起事件的潜在原因,可能会在客户端计算设备上执行故障排除步骤以进行隔离。 最终,如果知道挂起的bug,可能会向用户提供一个解决方案。 或者,如果该错误是未知的,则本发明的实现发送被软件提供商分析和修复的捕获数据。

    Reconstructing program control flow
    5.
    发明授权
    Reconstructing program control flow 有权
    重构程序控制流程

    公开(公告)号:US08510724B2

    公开(公告)日:2013-08-13

    申请号:US12972198

    申请日:2010-12-17

    IPC分类号: G06F9/45

    CPC分类号: G06F8/51 G06F8/53

    摘要: The present invention extends to methods, systems, and computer program products for reconstructing program control flow. Embodiments include implementing or morphing a control flow graph (“CFG”) into an arbitrary loop structure to reconstruct (preserve) control flow from original source code. Loop structures can be optimized and can adhere to target platform constraints. In some embodiments, C++ source code (a first higher level format) is translated into a CFG (a lower level format). The CFG is then translated into High Level Shader Language (“HLSL”) source code (a second different higher level format) for subsequent compilation into SLSL bytecode (that can then be executed at a Graphical Processing Unit (“GPU”)). The control flow from the C++ source code is preserved in the HLSL source code.

    摘要翻译: 本发明扩展到用于重建程序控制流的方法,系统和计算机程序产品。 实施例包括将控制流程图(“CFG”)实现或变形为任意循环结构,以重构(保留)来自原始源代码的控制流程。 循环结构可以进行优化,并可以遵守目标平台约束。 在一些实施例中,将C ++源代码(第一较高级格式)转换成CFG(较低级格式)。 然后将CFG转换为高级着色器语言(“HLSL”)源代码(第二种不同的较高级别格式),以便后续编译成SLSL字节码(然后可以在图形处理单元(“GPU”)中执行)。 来自C ++源代码的控制流将保留在HLSL源代码中。

    SHADER INTERFACES
    6.
    发明申请
    SHADER INTERFACES 有权
    阴影界面

    公开(公告)号:US20090322751A1

    公开(公告)日:2009-12-31

    申请号:US12163734

    申请日:2008-06-27

    IPC分类号: G06T15/50

    摘要: Allocation of memory registers for shaders by a processor is described herein. For each shader, registers are allocated based on the shader's level of complexity. Simpler shader instances are restricted to a smaller number of memory registers. More complex shader instances are allotted more registers. To do so, developers' high level shading level (HLSL) language includes template classes of shaders that can later be replaced by complex or simple versions of the shader. The HLSL is converted to bytecode that can be used to rasterize pixels on a computing device.

    摘要翻译: 这里描述了由处理器分配用于着色器的存储器寄存器。 对于每个着色器,根据着色器的复杂程度分配寄存器。 更简单的着色器实例仅限于较少数量的存储器寄存器。 更复杂的着色器实例被分配更多的寄存器。 为此,开发人员的高级着色级别(HLSL)语言包括着色器的模板类,以后可以被复杂或简单版本的着色器所取代。 HLSL转换为字节码,可用于栅格化计算设备上的像素。

    Threading and communication architecture for a graphical user interface
    7.
    发明授权
    Threading and communication architecture for a graphical user interface 有权
    用于图形用户界面的线程和通信架构

    公开(公告)号:US07426735B2

    公开(公告)日:2008-09-16

    申请号:US10958859

    申请日:2004-10-05

    IPC分类号: G06F9/44

    CPC分类号: G06F9/451

    摘要: A system and method to facilitate communication between a user interface and an associated process is disclosed. A first thread is associated with the user interface and a second thread is associated with the process for implementing requests by the user interface. At least one state buffer is operable to store state data for controlling ownership to the state buffer by the first and second threads for communicating data between the first and second threads. The architecture may be used in connection with a debugging system, such as to facilitate responsive interaction between the GUI and the associated debugging system.

    摘要翻译: 公开了一种促进用户界面和关联过程之间的通信的系统和方法。 第一个线程与用户界面相关联,第二个线程与用于实现用户界面的请求的过程相关联。 至少一个状态缓冲器可操作以存储用于通过第一和第二线程控制对状态缓冲器的所有权的状态数据,用于在第一和第二线程之间传送数据。 该架构可以与调试系统结合使用,以便于GUI和相关联的调试系统之间的响应交互。

    Techniques for managed code debugging
    8.
    发明授权
    Techniques for managed code debugging 有权
    托管代码调试技巧

    公开(公告)号:US07150006B2

    公开(公告)日:2006-12-12

    申请号:US10700180

    申请日:2003-11-03

    IPC分类号: G06F9/44 G06F9/45

    CPC分类号: G06F11/3624

    摘要: A system and method for facilitating cross-process access into a managed code process is useful in an embodiment of the invention for debugging managed code without perturbing the process being accessed or requiring the code under test to be running during debugging. A compiler according to an embodiment of the invention is used to produce mirror code wherein in-process pointers have been replaced with cross-process pointers in order to mirror the address space of the process under test to the address space of the mirror code process. In a further embodiment, the mirror code process is modified not only to allow but also to optimize the cross-process access.

    摘要翻译: 用于促进对托管代码过程的跨进程访问的系统和方法在本发明的一个实施例中是有用的,用于调试托管代码而不干扰要访问的进程或要求被测代码在调试期间运行。 根据本发明的实施例的编译器用于产生镜像代码,其中过程中指针已被交叉处理指针替代,以便将被测进程的地址空间镜像到镜像码处理的地址空间。 在另一实施例中,镜像码过程被修改为不仅允许而且优化交叉进程访问。

    Extensible actions and container types in an extensible scene graph system
    9.
    发明授权
    Extensible actions and container types in an extensible scene graph system 失效
    可扩展动作和容器类型在可扩展场景图系统中

    公开(公告)号:US06931412B2

    公开(公告)日:2005-08-16

    申请号:US10010698

    申请日:2001-11-05

    摘要: A directed graph includes a plurality of containers, where each container has a type value and is instantiated based on one of a plurality of container types. Each action as instantiated includes an action method table comprising a plurality of action methods. Each action when traversing the directed graph employs the type value of an encountered container as an offset into the action method table thereof to select the action method to be executed on the encountered container. During run-time and prior to traversing the directed graph, an action is instantiated if not already instantiated, and the method table of the action is expanded and filled in based on any new container types in the system.

    摘要翻译: 有向图包括多个容器,其中每个容器具有类型值,并且基于多个容器类型之一来实例化。 作为被实例化的每个动作包括包括多个动作方法的动作方法表。 当遍历有向图时的每个动作都使用遇到的容器的类型值作为其动作方法表的偏移量,以选择要在遇到的容器上执行的动作方法。 在运行时间和遍历有向图之前,如果尚未实例化,则会实例化一个动作,并且基于系统中的任何新的容器类型来扩展和填充动作的方法表。

    Emulating pointers
    10.
    发明授权
    Emulating pointers 有权
    模拟指针

    公开(公告)号:US08997066B2

    公开(公告)日:2015-03-31

    申请号:US12979094

    申请日:2010-12-27

    IPC分类号: G06F9/45 G06F9/455

    CPC分类号: G06F9/455 G06F8/434

    摘要: The present invention extends to methods, systems, and computer program products for emulating pointers. Pointers can be emulated by replacing the pointers with a pair and replacing each dereference site with a switch on the tag and a switch body that executes the emulated pointer access on the corresponding variable the pointer points to. Data flow optimizations can be used to reduce the number of switches and/or reduce the number of cases which need be considered at each emulated pointer access sites.

    摘要翻译: 本发明扩展到用于模拟指针的方法,系统和计算机程序产品。 可以通过用对替换指针来替换指针,并使用标签上的开关替换每个解引用站点,以及在指针指向的相应变量上执行仿真指针访问的交换机主体。 可以使用数据流优化来减少交换机的数量和/或减少在每个仿真指针访问站点需要考虑的情况的数量。