DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This office action is in response to the application filed May 31, 2024.
Claims 1-20 are pending.
This application claims benefit to provision application 63/641,820 filed May 2, 2024. The claims are examined as entitled to the earlier filing date herein.
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.
Claim(s) 1-3,5-10,12-17, 19 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over “Guan” ( US PG publication 2014/0289707) in view of “Bates” (US PG Pub 2016/0306734).
Regarding Claim 1, Guan teaches:
1. A computer-implemented method for mapping an optimized binary to a non- optimized binary, comprising: compiling a binary into an optimized binary; (¶¶11-12,38-39 teaches compilation of an optimized and non-optimized binary of a program and mapping between those by the debugger for dynamic switching as seen in e.g. fig. 8, ¶¶49-51, ¶3, see further e.g. Fig. 1, describing processor and memory in a device to carry out the dynamic switching debugging process )
identifying a breakpoint within the optimized binary; (¶¶11-12, 52, 55-56, table 4 describe setting/ processing breakpoints in the dynamic switching context between optimized and non-optimized binary)
adding a set of guard breakpoints in the optimized binary based on the breakpoint…, (¶¶11-12, 52, 55-56, table 4 describe setting/ processing breakpoints in the dynamic switching context between optimized and non-optimized binary) wherein the set of guard breakpoints reference a portion of a non- optimized binary; (¶¶11-12, 52, 55-56, table 4 describe setting/ processing breakpoints in the dynamic switching context between optimized and non-optimized binary)
and redirecting to the portion of the non-optimized binary from the optimized binary. debugger for dynamic switching as seen in e.g. fig. 8, ¶¶49-51)
generating a dependency graph, wherein the dependency graph associates functions within the binary; (Bates Graph 305, F3, 405, F4. ¶¶42,43,48,49 describes a generation of a graph of the test program where nodes represent routines and edges the dependency between, and the debugger teaches automatically adding tracking breakpoints to routines in the test program identified by nodes in the graph)
[based on]… and the dependency graph(Bates Graph 305, F3, 405 Fig. 4 ¶¶42,43,48,49 describes a generation of a graph of the test program where nodes represent routines and edges the dependency between, and the debugger teaches automatically adding tracking breakpoints to routines in the test program identified by nodes in the graph)
In addition, it would have been obvious to one of ordinary skill in the art, prior to the effective filing date of the application to combine the teachings of Guan and Bates as both are directed to debugging systems using breakpoints and Bates recognized the need for a “software debugger application that can identify program flow in a computer program, executing in a debugger, subsequent to resuming execution from a user breakpoint.” (¶1).
Regarding the dependent claims Guan and Bates further teach:
2. The computer-implemented method of claim 1, further comprising generating the non-optimized binary from the binary. (Guan e.g. 610, Fig. 6, ¶¶36-39 teaches a compiling method using separate compiling methods to generate the optimized and non-optimized versions of a binary)
3. The computer-implemented method of claim 1, further comprising generating metadata associated with the binary. (Guan e.g. 610, Fig. 6, ¶¶36-39 teaches a compiling method using separate compiling methods to generate the optimized and non-optimized versions of a binary, including generating and using debugging information ¶42)
5. The computer-implemented method of claim 1, wherein the set of guard breakpoints are added to every associated function within the optimized binary. (Bates e.g. ¶¶ adds sets of tracking breakpoints to each routine represented in the graph 305) In addition, it would have been obvious to one of ordinary skill in the art, prior to the effective filing date of the application to combine the teachings of Guan and Bates as both are directed to debugging systems using breakpoints and Bates recognized the need for a “software debugger application that can identify program flow in a computer program, executing in a debugger, subsequent to resuming execution from a user breakpoint.” (¶1).
6. The computer-implemented method of claim 1, wherein the set of guard breakpoints are added to a portion of associated functions within the optimized binary. (Bates e.g. ¶¶ adds sets of tracking breakpoints to each routine represented in the graph 305) In addition, it would have been obvious to one of ordinary skill in the art, prior to the effective filing date of the application to combine the teachings of Guan and Bates as both are directed to debugging systems using breakpoints and Bates recognized the need for a “software debugger application that can identify program flow in a computer program, executing in a debugger, subsequent to resuming execution from a user breakpoint.” (¶1).
7. The computer-implemented method of claim 1, further comprising displaying the optimized binary and the non-optimized binary on a user interface.(Bates teaches displaying a call stack representing the optimized and non-optimized versions of routines in the binaries in 415 Fig. 4) In addition, it would have been obvious to one of ordinary skill in the art, prior to the effective filing date of the application to combine the teachings of Guan and Bates as both are directed to debugging systems using breakpoints and Bates recognized the need for a “software debugger application that can identify program flow in a computer program, executing in a debugger, subsequent to resuming execution from a user breakpoint.” (¶1).
Claims 8-10 and 12-14 are rejected on the same basis as claims 1-3 and 5-7 respectively above.
Claims 15-17 and 19-20 are rejected on the same basis as claims 1-3 and 5-6 respectively above.
Claim(s) 4, 11 and 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over “Guan” ( US PG publication 2014/0289707) in view of “Bates” (US PG Pub 2016/0306734) as applied above and further in view of “Maybee” (US PG Pub 2010/0199265).
4. The computer-implemented method of claim 1, wherein the breakpoint is a trampoline breakpoint. (Maybee ¶¶22,23,26-27 teaches a dynamic instrumentation system where the dynamic instrumentation includes a trampoline in target method to instrumentation method) In addition, it would have been obvious to one of ordinary skill in the art, prior to the effective filing date of the application to combine the teachings of Guan and Bates as both are directed to debugging systems using breakpoints and Bates recognized the need for a a system that “simplifies programming debugging by dynamically injecting debugger compiled instrumentation into the debuggee process such that the debuggee process executes the instrumentation without executing the debugger.” (¶6).
Claims 11 and 18 are rejected on the same basis as claim 4 above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. The Prior art cited in the attached PTO-892 form includes prior art relevant to applicant’s disclosures related to debugging using optimized and non-optimized binary versions of a program.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MATTHEW J BROPHY whose telephone number is (571)270-1642. The examiner can normally be reached Monday-Friday, 9am-4:30pm.
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, Wei Zhen can be reached at 571-272-3708. 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.
MJB
7/23/2026
/MATTHEW J BROPHY/Primary Examiner, Art Unit 2191