Support for a non-native application

US9766911B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9766911-B2
Application numberUS-42939909-A
CountryUS
Kind codeB2
Filing dateApr 24, 2009
Priority dateApr 24, 2009
Publication dateSep 19, 2017
Grant dateSep 19, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Aspects of the invention are directed to a systems and methods for operating a non-native binary in dynamic binary translation environment. In accordance with an embodiment, there is provided a computer program product in a computer readable medium. The product includes program code for receiving a non-native binary in a computer readable medium and program code for translating the non-native binary. Additionally, the product includes program code for executing the translated non-native binary, the non-native binary including one or more threads, and program code for pausing execution of the translated non-native binary. The product also includes program code for providing guest instruction boundary information to a monitoring process and program code for analyzing a state of each thread of the translated non-native binary. Moreover, the product includes program code for fast-forwarding at least one thread so that its state is consistent with the guest instruction boundary.

First claim

Opening claim text (preview).

The invention claimed is: 1. One or more non-transitory computer readable media comprising instructions which, when executed by one or more hardware processors, cause performance of operations comprising: translating a non-native binary using a binary translator to obtain a translated non-native binary, wherein a particular non-native binary instruction is translated to a plurality of translated non-native binary instructions, and wherein an instruction boundary associated with the particular non-native binary instruction corresponds to a last instruction in the plurality of translated non-native binary instructions; beginning execution of the translated non-native binary on a host operating system; during execution of a particular translated non-native binary instruction of the plurality of translated non-native binary instructions: receiving a command to pause execution of the translated non-native binary; responsive to receiving the command: pausing execution of the translated non-native binary after executing the particular translated non-native binary instruction of the plurality of translated non-native binary instructions and before executing a next instruction of the plurality of translated non-native binary instructions; determining, by a monitoring process, that the execution of the translated non-native binary has not been paused at any instruction boundary associated with the non-native binary; causing, by the monitoring process, execution of at least the last instruction of the particular plurality of translated non-native binary instructions to reach the instruction boundary associated with the particular non-native binary instruction; and pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 2. The media of claim 1 , wherein the operations further comprise: saving a state of the non-native binary after pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 3. The media of claim 1 , wherein the operations further comprise: exporting, to the monitoring process, a state of the non-native binary after pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 4. The media of claim 3 wherein the monitoring process comprises a non-native process different than the non-native binary. 5. The media of claim 1 , wherein the operations further comprise: determining if an address space of the non-native binary has been modified; and routing execution of the translated non-native binary through a special service routine if the address space is modified. 6. The media of claim 5 wherein routing execution of the translated non-native binary through the special service routine comprises: flushing cache code; and translating the address space of the non-native binary that has been modified. 7. The media of claim 5 wherein determining if the address space of the non-native binary has been modified is based on a /proc/pid/as file of the non-native binary. 8. A system comprising: at least one device including a hardware processor; and the system configured to perform operations comprising: translating a non-native binary using a binary translator to obtain a translated non-native binary, wherein a particular non-native binary instruction is translated to a plurality of translated non-native binary instructions, and wherein an instruction boundary associated with the particular non-native binary instruction corresponds to a last instruction in the plurality of translated non-native binary instructions; beginning execution of the translated non-native binary on a host operating system; during execution of a particular translated non-native binary instruction of the plurality of translated non-native binary instructions: receiving a command to pause execution of the translated non-native binary; responsive to receiving the command: pausing execution of the translated non-native binary after executing the particular translated non-native binary instruction of the plurality of translated non-native binary instructions and before executing a next instruction of the plurality of translated non-native binary instructions; determining, by a monitoring process, that the execution of the translated non-native binary has not been paused at any instruction boundary associated with the non-native binary; causing, by the monitoring process, execution of at least the last instruction of the particular plurality of translated non-native binary instructions to reach the instruction boundary associated with the particular non-native binary instruction; and pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 9. The system of claim 8 wherein the operations further comprise: exporting a register state of the non-native binary after pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 10. The system of claim 9 wherein the register state is exported to an offset address relative to a binary translator in a computer readable medium. 11. The system of claim 8 wherein the operations further comprise: reading a register state of the non-native binary by opening a /proc/pid/as file of the non-native binary. 12. The system of claim 8 , wherein the operations further comprise: reading, by a second non-native binary, a register state of the non-native binary. 13. The media of claim 1 wherein the instruction boundary associated with the particular non-native binary instruction indicates a stopping point in the plurality of translated non-native binary instructions. 14. The media of claim 1 , wherein the operations further comprise: exporting a state of the non-native binary, after pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction, to an offset address relative to a binary translator. 15. A method, comprising: translating a non-native binary using a binary translator to obtain a translated non-native binary, wherein a particular non-native binary instruction corresponds to a particular plurality of translated non-native binary instructions, and wherein an instruction boundary associated with the particular non-native binary instruction corresponds to a last instruction in the particular plurality of translated non-native binary instructions; beginning execution of the translated non-native binary on a host operating system; during execution of a particular translated non-native binary instruction of the plurality of translated non-native binary instructions: receiving a command to pause execution of the translated non-native binary; responsive to receiving the command: pausing execution of the translated non-native binary after executing the particular translated non-native binary instruction of the plurality of translated non-native binary instructions and before executing a next instruction of the plurality of translated non-native binary instructions; determining, by a monitoring process, that the exe

Assignees

Inventors

Classifications

  • Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title

  • Runtime code conversion or optimisation · CPC title

  • by tracing the execution of the program · CPC title

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9766911B2 cover?
Aspects of the invention are directed to a systems and methods for operating a non-native binary in dynamic binary translation environment. In accordance with an embodiment, there is provided a computer program product in a computer readable medium. The product includes program code for receiving a non-native binary in a computer readable medium and program code for translating the non-native b…
Who is the assignee on this patent?
Das Abhinav, Lu Jiwei, Chen William Y, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/45504. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 19 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).