Prosecution Insights
Last updated: August 17, 2026
Application No. 18/397,996

MULTIPLE SIMULTANEOUS CODE DEBUGGING

Final Rejection §103
Filed
Dec 27, 2023
Examiner
UNG, LANNY N
Art Unit
2197
Tech Center
2100 — Computer Architecture & Software
Assignee
Microsoft Technology Licensing, LLC
OA Round
2 (Final)
71%
Grant Probability
Favorable
3-4
OA Rounds
9m
Est. Remaining
97%
With Interview

Examiner Intelligence

Grants 71% — above average
71%
Career Allowance Rate
361 granted / 507 resolved
+16.2% vs TC avg
Strong +26% interview lift
Without
With
+25.7%
Interview Lift
resolved cases with interview
Typical timeline
3y 4m
Avg Prosecution
16 currently pending
Career history
532
Total Applications
across all art units

Statute-Specific Performance

§101
18.7%
-21.3% vs TC avg
§103
50.5%
+10.5% vs TC avg
§102
18.6%
-21.4% vs TC avg
§112
7.7%
-32.3% vs TC avg
Black line = Tech Center average estimate • Based on career data from 507 resolved cases

Office Action

§103
DETAILED ACTION 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 . This Office Action is in response to amendments filed on May 4, 2026. Claims 1-20 are pending. Claims 1, 8 and 15-16 have been amended. Response to Amendment Claim Objections Claims 1-20 are objected to because of the following informalities: Claims 1, 8 and 15 recite “the plurality of versions” in lines 7-8, 9-10 and 8-9 respectively. In the interest of consistency, it is recommended that this be amended to “the plurality of different versions”. Claims 2-5, 7, 9, 11, 16 and 18 recite “the plurality of versions”. In the interest of consistency, it is recommended that this be amended to “the plurality of different versions”. Claims 2-7, 9-14 and 16-20 depend on the objected to claims and do not resolve the deficiencies and thus, are objected to for at least the same reasons. Appropriate correction is required. 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-3, 5-6, 8, 15-17 and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Boxall (US 9,740,593) in view of Grover (US 2021/0286702). With respect to Claim 1, Boxall discloses: receiving a synchronized debug command; (using a user interface (UI), a user can input a command to step through the executable code, may set breakpoints, etc., within the debugger, Column 5, lines 46-54) identifying corresponding points of execution targeted by the synchronized debug command in a plurality of different versions of a software application; (set a breakpoint at a starting location (e.g., the program entry point), or another defined location in the program code (identifying corresponding points of execution), Column 5, lines 40-45; The debug sessions will then be synchronized (synchronized debug command) so that all sessions stop at the same breakpoint or location in program code., Column 5, lines 43-45; diagnosing a regression introduced by using differential debugging to compare two builds (plurality of different versions) on the same platform, Column 10, lines 32-34) applying an unsynchronized debug sub-command of the synchronized debug command to the plurality of different versions of the software application until the corresponding points of execution have been targeted by the unsynchronized debug sub-command in the plurality of versions of the software application, (a user may input a command to step through the executable code, may set breakpoints, etc., within the debugger which will be applied (unsynchronized debug sub-command) to all remote debug sessions simultaneously (plurality of different versions of the software application), Column 5, lines 46-54) Boxall do not disclose: wherein the unsynchronized debug sub-command is applied to a portion of a source code file that is present in at least one but not all of the plurality of different versions of the software application. However, Grover discloses: wherein the unsynchronized debug sub-command is applied to a portion of a source code file that is present in at least one but not all of the plurality of different versions of the software application. (The user may further debug by identifying code changes relative to the actual thread variance in the two versions of code, and set debugger breakpoints (unsynchronized debug sub-command) relative to the variance to stop execution once a thread variance (a portion of a source code file that is present in at least one but not all of the plurality of different versions of the software application ) is detected., Paragraph 39) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Grover into the teaching of Boxall to include wherein the unsynchronized debug sub-command is applied to a portion of a source code file that is present in at least one but not all of the plurality of different versions of the software application in order to help identify the cause of a problem in two different instances/versions of code. (Grover, Paragraph 40) With respect to Claim 2, all the limitations of Claim 1 have been addressed above; and Boxall further disclose: wherein the synchronized debug command comprises a synchronized step command, (a command, e.g., a step command, (a synchronized step command) may be issued at client system 110 and communicated to each remote server system debug engine, Column 6, lines 1-4) wherein the unsynchronized debug sub-command comprises an unsynchronized step command, (a command, e.g., a step command, (a synchronized step command) may be issued at client system 110 and communicated to each remote server system debug engine (unsynchronized debug sub-command), Column 6, lines 1-4) and wherein the unsynchronized step command is applied to the plurality of versions of the software application until the corresponding points of execution are reached. (a command, e.g., a step command, may be issued at client system 110 and communicated to and executed at each remote server system debug engine (applied to the plurality of versions of the software application), Column 6, lines 1-4) With respect to Claim 3, all the limitations of Claim 1 have been addressed above; and Boxall further disclose: wherein the synchronized debug command comprises a create breakpoint command, (debug operations may be set, e.g., breakpoint operations, (synchronized debug command), Column 8, lines 29-39), wherein the unsynchronized debug sub-command comprises an unsynchronized create breakpoint command, (debug operations may be set, e.g., breakpoint operations, and applied to each debug session (unsynchronized create breakpoint command), Column 8, lines 29-39),and wherein the unsynchronized create breakpoint command is applied to the corresponding points of execution of the plurality of versions of the software application. (debug operations may be set, e.g., breakpoint operations, and applied to each debug session (applied to the plurality of versions of the software application), Column 8, lines 29-39) With respect to Claim 5, all the limitations of Claim 1 have been addressed above; and Boxall further disclose: wherein each of the corresponding points of execution comprises an identification of a portion of executable code of one of the plurality of versions of the software application. (set a breakpoint at a starting location (e.g., the program entry point), or another defined location in the program code (corresponding points of execution), Column 5, lines 40-45; a user may explicitly specify which point(s) to compare, e.g., at every module load and every module entry point, or any point within a given module, (corresponding points of execution) to achieve any desired granularity with respect to line-by-line comparison of data, Column 8, lines 35-39) With respect to Claim 6, all the limitations of Claim 1 have been addressed above; and Boxall further disclose: wherein the corresponding points of execution evolved from a common point of execution in an independent version of the software application. (ability to set common breakpoints (common point of execution) such as at every module load and every module entry point, or any point within a given module (independent version of the software application), Column 8, lines 35-39) Claim 8 is a system claim corresponding to the method claim above (Claim 1) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 1. Claim 15 is a computer-readable storage medium claim corresponding to the method claim above (Claim 1) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 1. With respect to Claim 16, all the limitations of Claim 15 have been addressed above; and Boxall further disclose: displaying a call stack for each of the plurality of versions of the software application. (Other examples of data which may be monitored include states of local variables on a stack, register values of application, states of certain areas of memory such as pointer values, etc., Column 6, lines 8-11; differences between the executables (plurality of versions of the software application) may be highlighted and displayed via the UI, Column 6, lines 19-21) With respect to Claim 17, all the limitations of Claim 16 have been addressed above; and Boxall further disclose: wherein the call stack indicates when a name of a function or a parameter has changed between versions of the software application. (Other examples of data which may be monitored include states of local variables on a stack, register values of application, states of certain areas of memory such as pointer values, etc., Column 6, lines 8-11; differences between the executables (a parameter has changed) may be highlighted and displayed via the UI, Column 6, lines 19-21) With respect to Claim 19, all the limitations of Claim 15 have been addressed above; and Boxall further disclose: wherein the synchronized debug command comprises a step into command, a step over command, a step out command, a run to cursor command, or a create breakpoint command. (debugging commands (synchronized debug command) can include a step command, a breakpoint command, run, stop, resume, step over, step into, etc., Column 6, lines 3-11) With respect to Claim 20, all the limitations of Claim 15 have been addressed above; and Boxall further disclose: wherein the computer- readable instructions further cause the system to: generate a suggested location of point of execution from a method entry point or a method exit point. (a user may explicitly specify (suggested by user) which point(s) to compare, e.g., at every module load and every module entry point, or any point within a given module, to achieve any desired granularity with respect to line-by-line comparison of data, Column 8, lines 35-39) Claim 4 is rejected under 35 U.S.C. 103 as being unpatentable over Boxall (US 9,740,593) in view of Grover (US 2021/0286702) and in further view of Eberlein et al. (US 2017/0168801). With respect to Claim 4, all the limitations of Claim 1 have been addressed above; and Boxall and Grover do not explicitly disclose: wherein the plurality of versions of the software application were built from a corresponding plurality of branches of a software repository. However, Eberlein et al. disclose: wherein the plurality of versions of the software application were built from a corresponding plurality of branches of a software repository. (An application may have a dedicated VCS (software repository) to be used for storing files associated with different versions of the application (plurality of versions of the software application). The different version of the application may be defined at different stages of application development and productive use in end-to-end use case scenarios., Paragraph 14) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Eberlein et al. into the teaching of Boxall and Grover to include wherein the plurality of versions of the software application were built from a corresponding plurality of branches of a software repository in order to have a centralized location to store files associated with different versions of the application so users can quickly access/find any needed files. Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Boxall (US 9,740,593) in view of Grover (US 2021/0286702) and in further view of Ren et al. (US 2022/0382541). With respect to Claim 7, all the limitations of Claim 2 have been addressed above; and Boxall and Grover further disclose: wherein the unsynchronized step command is iteratively applied to one of the plurality of versions of the software application to step through [a change] not included in another one of the plurality of versions of the software application. (Boxall, provides the ability for automatic detection of differences in data (a change) from each of the debuggers, as the user is stepping through a program (unsynchronized step command is iteratively applied), Column 5, lines 16-19) Boxall and Grover do not disclose: [a change] is an intermediate function not included in another one of the plurality of versions of the software application However, Ren et al. disclose: [a change] is an intermediate function not included in another one of the plurality of versions of the software application (a commit (change) can create new functions or changes to existing functions in the code base (intermediate function not included in another one of the plurality of versions of the software application), Paragraph 38) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Ren et al. into the teaching of Boxall and Grover to include [a change] is an intermediate function not included in another one of the plurality of versions of the software application in order to allow a user to add new or modify existing functionality within a code base. Claim 9 is rejected under 35 U.S.C. 103 as being unpatentable over Boxall (US 9,740,593) in view of Grover (US 2021/0286702) and in further view of Deckert et al. (US 2015/0033210). With respect to Claim 9, all the limitations of Claim 8 have been addressed above; and Boxall and Grover do not disclose: wherein the corresponding points of execution are obtained by comparing a plurality of branches of source code of the software application that correspond to the plurality of versions of the software application. However, Deckert et al. disclose: wherein the corresponding points of execution are obtained by comparing a plurality of branches of source code of the software application that correspond to the plurality of versions of the software application. (generating breakpoints (corresponding points of execution) based on a code change region which is identified by comparing versions of a file in a change-set (plurality of branches of source code of the software application) (i.e. identifying that version 3, lines 59-65 have changed), Paragraphs 36-37) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Deckert et al. into the teaching of Boxall and Grover to include wherein the corresponding points of execution are obtained by comparing a plurality of branches of source code of the software application that correspond to the plurality of versions of the software application in order to help a user efficiently set breakpoints in a debugger for a change-set. (Deckert et al., Paragraph 5) Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Boxall (US 9,740,593) in view of Grover (US 2021/0286702) in view of Deckert et al. (US 2015/0033210) and in further view of Rodgers et al. (US 2022/0197606). With respect to Claim 10, all the limitations of Claim 9 have been addressed above; and Boxall, Grover and Deckert et al. do not disclose: wherein comparing the plurality of branches comprises identifying when a function or a variable in one branch has been renamed in another branch. However, Rodgers et al. disclose: wherein comparing the plurality of branches comprises identifying when a function or a variable in one branch has been renamed in another branch. (comparing a second version to a first version and identifying a number of changes such as when a function is renamed, Paragraph 29) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Rodgers et al. into the teaching of Boxall, Grover and Deckert et al. to include wherein comparing the plurality of branches comprises identifying when a function or a variable in one branch has been renamed in another branch in order to automatically identify changes between versions of source code to which can help generate compatible modified source code. (Rodgers et al., Paragraph 3, lines 7) Claims 11-14 are rejected under 35 U.S.C. 103 as being unpatentable over Boxall (US 9,740,593) in view of Grover (US 2021/0286702) in view of Deckert et al. (US 2015/0033210) and in further view of Rodrigues Rosa Junior (US 2020/0379752). With respect to Claim 11, all the limitations of Claim 8 have been addressed above; and Boxall and Grover do not disclose: wherein the corresponding points of execution are obtained by performing a binary comparison of executable binaries of each of the plurality of versions of the software application. However, Deckert et al. disclose: wherein the corresponding points of execution are obtained by performing a [comparison] of each of the plurality of versions of the software application. (generating breakpoints (corresponding points of execution) based on a code change region which is identified by comparing versions of a file in a change-set (comparison of each of the plurality of versions of the software application) (i.e. identifying that version 3, lines 59-65 have changed), Paragraphs 36-37) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Deckert et al. into the teaching of Boxall and Grover to include wherein the corresponding points of execution are obtained by performing a [comparison] of each of the plurality of versions of the software application in order to help a user efficiently set breakpoints in a debugger for a change-set. (Deckert et al., Paragraph 5) Boxall, Grover and Deckert et al. do not disclose: [comparison] is a binary comparison of executable binaries of each of the plurality of versions of the software application However, Rodrigues Rosa Junior disclose: [comparison] is a binary comparison of executable binaries of each of the plurality of versions of the software application (identifying changes to versions of code by performing a binary comparison between version of the code object, Paragraph 52) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Rodrigues Rosa Junior into the teaching of Boxall, Grover and Deckert et al. to include a binary comparison of executable binaries of each of the plurality of versions of the software application in order to help identify binary differences for development, configuration or testing purposes. (Rodrigues Rosa Junior, Paragraph 13, lines 13-16) With respect to Claim 12, all the limitations of Claim 11 have been addressed above; and Boxall, Grover and Deckert et al. do not disclose: wherein the binary comparison determines that a remote code change or a change in a toolkit used to build the application causes instructions compiled from unchanged local code to change. However, Rodrigues Rosa Junior disclose: wherein the binary comparison determines that a remote code change or a change in a toolkit used to build the application causes instructions compiled from unchanged local code to change. (The binary comparison may be performed at any level of granularity and may be performed between one or more bits, bytes, packets, sectors, blocks, records, files, directories, other level, or a combination thereof. The differences may include on or more data additions, deletions, moves, (unchanged local code) copies, other data transformation, or a combination thereof. As discussed above, the comparison may or may not take into account the base versions or a common base version when performing the comparison to determine the change set., Paragraph 52; see Figure 1, computing device/node; determining the changes may involve detecting the changes when they are provided by a user (e.g., as developer input or IT administrator input) (remote code change), Paragraph 51) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Rodrigues Rosa Junior into the teaching of Boxall, Grover and Deckert et al. to include wherein the binary comparison determines that a remote code change or a change in a toolkit used to build the application causes instructions compiled from unchanged local code to change in order to help identify binary differences for development, configuration or testing purposes. (Rodrigues Rosa Junior, Paragraph 13, lines 13-16) With respect to Claim 13, all the limitations of Claim 12 have been addressed above; and Boxall, Grover and Deckert et al. do not disclose: further comprising: indicating that the unchanged local code compiles to different instructions in at least one of the versions of the software application. However, Rodrigues Rosa Junior disclose: further comprising: indicating that the unchanged local code compiles to different instructions in at least one of the versions of the software application. (determining the differences may include (indicate) on or more data additions, deletions, moves, (unchanged local code compiles to different instructions) copies, other data transformation, or a combination thereof. As discussed above, the comparison may or may not take into account the base versions or a common base version when performing the comparison to determine the change set., Paragraph 52) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Rodrigues Rosa Junior into the teaching of Boxall, Grover and Deckert et al. to include indicating that the unchanged local code compiles to different instructions in at least one of the versions of the software application in order to help identify binary differences for development, configuration or testing purposes. (Rodrigues Rosa Junior, Paragraph 13, lines 13-16) With respect to Claim 14, all the limitations of Claim 11 have been addressed above; and Boxall, Grover and Deckert et al. further disclose: wherein the corresponding points of execution point to [a] first function in one of the versions of the software application and [a] second function in another of the versions of the software application. (Boxall, a user may explicitly specify which point(s) to set breakpoints at such as at every module load and every module entry point, or any point within a given module (first/second function) which is then applied to each debug session (plurality of versions of the software application), Column 8, lines 29-39) Boxall, Grover and Deckert et al. do not disclose: wherein the binary comparison identifies that a portion of a first function has been moved to a second function, However, Rodrigues Rosa Junior disclose: wherein the binary comparison identifies that a portion of a first function has been moved to a second function, (The binary comparison may be performed at any level of granularity and may be performed between one or more bits, bytes, packets, sectors, blocks, records, files, directories, other level, or a combination thereof. The differences may include on or more data additions, deletions, moves, (first function has been moved to a second function) copies, other data transformation, or a combination thereof. As discussed above, the comparison may or may not take into account the base versions or a common base version when performing the comparison to determine the change set., Paragraph 52; see Figure 1, computing device/node; determining the changes may involve detecting the changes when they are provided by a user (e.g., as developer input or IT administrator input) (remote code change), Paragraph 51) Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Rodrigues Rosa Junior into the teaching of Boxall, Grover and Deckert et al. to include wherein the binary comparison identifies that a portion of a first function has been moved to a second function in order to help identify binary differences for development, configuration or testing purposes. (Rodrigues Rosa Junior, Paragraph 13, lines 13-16) Allowable Subject Matter Claim 18 is objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims. Response to Arguments Applicant’s arguments with respect to claim(s) 1-17 and 19-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. Conclusion Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to LANNY N UNG whose telephone number is (571)270-7708. The examiner can normally be reached Mon-Thurs 6am-4pm. 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, Bradley Teets can be reached at 571-272-3338. 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. /LANNY N UNG/Primary Examiner, Art Unit 2197
Read full office action

Prosecution Timeline

Dec 27, 2023
Application Filed
Feb 02, 2026
Non-Final Rejection mailed — §103
Mar 18, 2026
Interview Requested
Mar 26, 2026
Examiner Interview Summary
May 04, 2026
Response Filed
Jul 07, 2026
Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12705041
FIRMWARE STORE FOR UPDATES IN AN INFORMATION HANDLING SYSTEM
3y 1m to grant Granted Aug 11, 2026
Patent 12693852
SYSTEMS AND METHODS FOR REMOTE CODE REVIEW
5y 4m to grant Granted Jul 28, 2026
Patent 12675270
SYSTEMS AND METHODS FOR GENERATING APPLICATION POLICIES
4y 0m to grant Granted Jul 07, 2026
Patent 12675285
MANAGING APPLICATIONS ACROSS MULTIPLE DEVICES
3y 2m to grant Granted Jul 07, 2026
Patent 12675387
LIVE TRACE EXPLORER
2y 10m to grant Granted Jul 07, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
71%
Grant Probability
97%
With Interview (+25.7%)
3y 4m (~9m remaining)
Median Time to Grant
Moderate
PTA Risk
Based on 507 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month