IP Library Granted Patent US 9,678,816
Granted Patent B2
US 9,678,816 · App. 13/848,231 · Granted Jun 13, 2017

System and method for injecting faults into code for testing thereof

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,678,816
App. No.
13/848,231
Granted
Jun 13, 2017
Kind
B2
Abstract

Probes are employed to inject errors into code. In response to a function-entry trigger event, a probe writes a predefined test value to a return value register. The probe then cause function execution to be skipped such that the test value is returned in lieu of the value which would otherwise be returned by the function. Behavior after the error is injected may then be observed, data collected, etc. such that undesired behavior (e.g., crashes) can be identified and/or corrected. In an alternative embodiment, the probe which is triggered may write a test value to a given memory address.

Claims (28)

1. A computer-implemented method for injecting errors into code, comprising:

loading, via one or more processors, a probe in a selected domain; and

in response to a function-entry trigger event, executing the probe, wherein the executed probe writes a predefined test value to a return value register of the function and causes execution of the function to be skipped and the predefined test value written to the return value register to be returned.

2. The method of claim 1 , wherein the probe is a dynamic probe.

3. The method of claim 1 , wherein the probe is a dynamic probe, and the function-entry is patched to trap to an exception handler which fires the probe.

4. The method of claim 1 , wherein the selected domain is one of a guest operating system domain, a virtual machine (VM) domain, a VM monitor domain, and a VM kernel domain.

5. The method of claim 1 , wherein the predefined test value is a value for testing a response of a system.

6. The method of claim 1 , wherein the probe is further configured to write to the return value register periodically.

7. The method of claim 1 , wherein the function is one of a memory allocation function and a disk read function.

8. The method of claim 1 , wherein the probe is further configured to modify a value at a memory address.

9. A non-transitory computer readable storage medium comprising instructions, wherein the instructions, when executed in a computer system, cause the computer system to perform steps for injecting errors into code that include the steps of:

loading a probe in a selected domain; and

in response to a function-entry trigger event, executing the probe, wherein the executed probe writes a predefined test value to a return value register of the function and causes execution of the function to be skipped and the predefined test value written to the return value register to be returned.

10. The non-transitory computer readable storage medium of claim 9 , wherein the probe is a dynamic probe.

11. The non-transitory computer readable storage medium of claim 9 , wherein the probe is a dynamic probe, and the function-entry is patched to trap to an exception handler which fires the probe.

12. The non-transitory computer readable storage medium of claim 9 , wherein the selected domain is one of a guest operating system domain, a virtual machine (VM) domain, a VM monitor domain, and a VM kernel domain.

13. The non-transitory computer readable storage medium of claim 9 , wherein the predefined test value is a value for testing a response to the predefined test value.

14. The non-transitory computer readable storage medium of claim 9 , wherein the probe is further configured to write to the return value register periodically.

15. The non-transitory computer readable storage medium of claim 9 , wherein the function is one of a memory allocation function and a disk read function.

16. The non-transitory computer readable storage medium of claim 9 , wherein the probe is further configured to modify a value at a memory address.

17. A system, comprising:

a processor; and

a memory, wherein the memory includes a program for injecting errors into code, the program being configured to perform operations comprising:

loading a probe in a selected domain, and

in response to a function-entry trigger event, executing the probe, wherein the executed probe writes a predefined test value to a return value register of the function and causes execution of the function to be skipped and the predefined test value written to the return value register to be returned.

18. The system of claim 17 , wherein the probe is a dynamic probe.

19. The system of claim 17 , wherein the selected domain is one of a guest operating system domain, a virtual machine (VM) domain, a VM monitor domain, and a VM kernel domain.

20. The system of claim 17 , wherein the predefined test value is a value for testing a response to the predefined test value.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2017
From: RUGINA, RADU
To: VMWARE, INC.
Reel/Frame 042347/0932 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2017
From: THAMPI, VIVEK MOHAN; GONZALEZ, RICARDO; KATARIA, ALOK
To: VMWARE, INC.
Reel/Frame 042331/0798 →