DETAILED ACTION
This is the initial Office action based on the application filed August 6, 2024.
Claims 1-20 are pending and have been examined.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The Information Disclosure Statement filed 08/06/2024 has been considered. An initialed copy of Form 1449 is enclosed herewith.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Dabak (US 2019/0129741), in view of C-SPY Debugging Guide, hereinafter C-SPY, and further in view of Kiel (US 2014/0146062).
Regarding claim 1, Dabak discloses:
receiving, at a virtual machine controller […], a watchpoint condition (see at least paragraph 15, a hypervisor is provided with virtual machine introspection capability and inserts breakpoints on functions of interest in a guest and reading guest memory and/or registers to parse parameters and/or operating system data structures);
determining […] the watchpoint condition is detected based on implementing the watchpoint condition on an application and executing the application (see at least figure 6; paragraph 44, determines if a breakpoint instruction is detected; paragraph 45);
based on satisfying the watchpoint […], pausing execution of the application and giving control of the application […] (see at least paragraph 15, the VMI hypervisor may dynamically construct and inject code gadgets in the guest and divert the guest’s virtual processor to execute the code gadgets on an as-needed basis)
However, Dabak does not explicitly disclose, but C-SPY discloses:
receiving, […] from a system profiler; giving control of the application to the system profiler (see at least pages 249 and 250, profiler, debugging, breakpoints; page 41, the C-SPY Simulator simulates the functions of the target processor entirely in software which means you can debug the program logic);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Dabak by adapting the teachings of C-SPY to include debugging on software simulated hardware. The combination allows for a cost-effective debugging solution for many applications since no hardware is required (C-SPY page 41, ¶1).
However, Dabak and C-SPY do not explicitly disclose, but Kiel discloses:
determining a number of times the watchpoint condition is detected […]; determining the number of times the watchpoint condition is detected satisfies a watchpoint threshold having a value of greater than or equal to two; and based on satisfying the watchpoint threshold (see at least paragraph 75, “the API interception module 755 will track how many times that particular breakpoint has triggered the fault handler. If the breakpoint has not been encountered a threshold number of times during that particular pass of the replay loop, then the API interception module 755 allows the GPU 306 to continue execution. However, if the breakpoint has been encountered the threshold number of times during that particular pass of the replay loop, then the API interception module 755 causes the current state of the GPU context to be stored to the shadow state memory 336”)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Dabak and C-SPY by adapting the teachings of Kiel to include tracking the number of times a breakpoint has been encountered specifically related to a threshold number of times. The combination allows for continuing operations unless the threshold has been reached and a breakpoint condition encountered which allows a loop containing the breakpoint to advance a number of iterations before encountering a breakpoint stop which advances to a different point in execution as opposed to stopping when the breakpoint is first encountered (Kiel ¶76).
Regarding claim 2, the rejection of claim 1 is incorporated, and Dabak further discloses:
receiving from the system profiler a pathname of the application, wherein executing the application is based on receiving the pathname of the application (see at least paragraph 21, applications 129 running on guest OS 126)
Regarding claim 3, the rejection of claim 1 is incorporated, and Dabak as modified further discloses:
receiving a value of the watchpoint threshold from the system profiler (see at least C-SPY pages 249 and 250, profiler, debugging, breakpoints; Kiel paragraph 75; paragraph 24, debugging mechanisms such as instruction stepping)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Dabak, C-SPY, and Kiel for the reasons listed above.
Regarding claim 4, the rejection of claim 1 is incorporated, and Dabak as modified further discloses:
setting a value of the watchpoint threshold to a default value based on receiving the watchpoint condition from the system profiler (see at least C-SPY pages 249 and 250, profiler, debugging, breakpoints; page 41, the C-SPY Simulator simulates the functions of the target processor entirely in software which means you can debug the program logic; Kiel paragraph 75; paragraph 24, debugging mechanisms such as instruction stepping)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Dabak, C-SPY, and Kiel for the reasons listed above.
Regarding claim 5, the rejection of claim 1 is incorporated, and Dabak as modified further discloses:
wherein executing the application is based on receiving control of the application from the system profiler (see at least Dabak paragraph 21, applications 129 running on guest OS 126; C-SPY pages 249 and 250, profiler, debugging, breakpoints)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Dabak, C-SPY, and Kiel for the reasons listed above.
Regarding claim 6, the rejection of claim 1 is incorporated, and Dabak further discloses:
wherein the virtual machine controller comprises at least one of a kernel or a hypervisor (see at least paragraph 15, a hypervisor is provided with virtual machine introspection capability and inserts breakpoints on functions of interest in a guest)
Regarding claim 7, the rejection of claim 6 is incorporated, and Dabak further discloses:
wherein the kernel comprises a guest kernel of a virtual machine (see at least figure 1, guest OS 126 and guest kernel 122)
Regarding claim 8, the rejection of claim 1 is incorporated, and Dabak further discloses:
wherein executing the application comprises executing a virtualized application on a virtual machine, the virtual machine being created by the virtual machine controller (see at least figure 1; paragraph 20, software platform includes a hypervisor that supports one or more VMs; paragraph 21, the guest software of VM includes a guest OS and one or more applications 129)
Regarding claim 9, the rejection of claim 8 is incorporated. However, Dabak and Kiel do not explicitly disclose, but C-SPY discloses:
wherein the system profiler comprises a computer architecture simulator that executes on a host system of the virtual machine (see at least page 41, the C-SPY Simulator simulates the functions of the target processor entirely in software which means you can debug the program logic)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Dabak and Kiel by adapting the teachings of C-SPY to include debugging on software simulated hardware. The combination allows for a cost-effective debugging solution for many applications since no hardware is required (C-SPY page 41, ¶1).
Regarding claims 10-20, the scope of the instant claims does not differ substantially from that of claims 1-7. Accordingly, claims 10-16 are rejected for the same reasons as set forth in the rejections of claims 1-7, respectively, and claims 17-20 are rejected for the same reasons as set forth in the rejections of claims 1-4, respectively.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Miller discloses profiling support for multiple virtual applications (¶65) as well as debugging capabilities including breakpoints (¶59) and context switching (¶32). Raviv discloses conditional breakpoints including contemplating number of loop iterations in repeating breakpoints (¶248). Dahan discloses a debugger, profiler, and virtualization system. Arnold discloses breakpoints considering a total number of hits exceeding a threshold of various breakpoints.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KIMBERLY L JORDAN whose telephone number is (571)270-5481. The examiner can normally be reached Monday, Tuesday, and Thursday 9am-3pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Kevin Young can be reached on (571) 270-3180. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/KIMBERLY L JORDAN/Examiner, Art Unit 2194