Method for altering execution of a program, debugger, and computer-readable medium

US9639343B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9639343-B2
Application numberUS-201414528451-A
CountryUS
Kind codeB2
Filing dateOct 30, 2014
Priority dateAug 29, 2014
Publication dateMay 2, 2017
Grant dateMay 2, 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.

A method for altering execution of a program on a computer. The program resides in a memory unit that has a logical address space assigned thereto. The method comprises: operating the computer to start executing the program; operating the computer to suspend execution of the program; selecting a patch insertion address within a logical address range of the program, saving the original code residing at the patch insertion address; generating a patch routine; writing a jump instruction to the patch insertion address, thus overwriting said original code, wherein the jump instruction is arranged to instruct the computer to jump to a start address of the patch routine; and operating the computer to resume execution of the program. The patch routine is arranged to prompt the computer to: save a current context of the program; execute a user code; restore the saved context of the program; and execute a surrogate code.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for altering execution of a program on a computer, wherein the program resides in a memory unit that has a logical address space assigned to it, and wherein the method comprises: operating the computer to start executing the program; operating the computer to suspend execution of the program; selecting a patch insertion address within a logical address range of the program, saving original code residing at the patch insertion address; generating a patch routine comprising user-defined code for modifying a function of the program; writing a jump instruction to the patch insertion address, thus overwriting said original code, wherein the jump instruction is arranged to instruct the computer to jump to a start address of the patch routine; compiling only the patch routine without recompiling the entire program; and operating the computer to resume execution of the program; wherein the patch routine is arranged to prompt the computer to: save a current context of the program; execute the user-defined code; restore the saved current context of the program; and execute a surrogate code which is equivalent to said original code, and wherein the patch insertion address is selected such that said action of operating the computer to resume execution of the program prompts the computer to reach the patch insertion address and, accordingly, to execute the patch routine. 2. The method of claim 1 , wherein generating the patch routine comprises: compiling the patch routine on the basis of the following: a source code of the user-defined code and said original code. 3. The method of claim 1 , comprising: generating the user-defined code by compiling a source code of the user-defined code. 4. The method of claim 1 , comprising: storing the patch routine in pre-allocated program memory. 5. The method of claim 1 , wherein the method comprises: enabling a user to select the patch insertion address. 6. The method of claim 1 , wherein the method comprises: enabling a user to define the user-defined code. 7. The method of claim 1 , further comprising: restoring the original code at the patch insertion address. 8. The method of claim 1 , further comprising providing a user interface for prompting a computer to execute the method in dependence of user input received from a user via the user interface. 9. The method of claim 8 , wherein the user interface comprises a graphical user interface. 10. The method of claim 8 , further comprising storing executable instructions for performing the method on a non-transitory computer-readable medium.

Assignees

Inventors

Classifications

  • by instrumenting at runtime · CPC title

  • Physics · mapped topic

  • G06F8/65Primary

    Updates (security arrangements therefor G06F21/57) · CPC title

  • Program initiating; Program switching, e.g. by interrupt · CPC title

  • Saving or restoring of program or task context · 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 US9639343B2 cover?
A method for altering execution of a program on a computer. The program resides in a memory unit that has a logical address space assigned thereto. The method comprises: operating the computer to start executing the program; operating the computer to suspend execution of the program; selecting a patch insertion address within a logical address range of the program, saving the original code resi…
Who is the assignee on this patent?
Nistor Mihail-Marian, Madan Teodor, Miloiu Dragos, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F11/3644. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 02 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).