Prosecution Insights
Last updated: April 19, 2026
Application No. 18/150,049

Multiplayer Debugger

Non-Final OA §103§112
Filed
Jan 04, 2023
Examiner
BERMAN, STEPHEN DAVID
Art Unit
2192
Tech Center
2100 — Computer Architecture & Software
Assignee
Replit Inc.
OA Round
3 (Non-Final)
79%
Grant Probability
Favorable
3-4
OA Rounds
2y 9m
To Grant
99%
With Interview

Examiner Intelligence

Grants 79% — above average
79%
Career Allow Rate
262 granted / 331 resolved
+24.2% vs TC avg
Strong +57% interview lift
Without
With
+56.6%
Interview Lift
resolved cases with interview
Typical timeline
2y 9m
Avg Prosecution
26 currently pending
Career history
357
Total Applications
across all art units

Statute-Specific Performance

§101
12.1%
-27.9% vs TC avg
§103
45.6%
+5.6% vs TC avg
§102
14.9%
-25.1% vs TC avg
§112
18.3%
-21.7% vs TC avg
Black line = Tech Center average estimate • Based on career data from 331 resolved cases

Office Action

§103 §112
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 filed in response to Applicant's Request for Continued Examination dated July 7, 2025. Claims 1-6, 8-11, 13-18, and 20 are currently amended, and claims 1-6, 8-11, 13-18, and 20-22 remain pending in the application and have been fully considered by Examiner. Applicant's arguments with respect to the prior art rejections have been considered, but are moot in view of the new grounds of rejection presented herein. Continued Examination Under 37 CFR 1.114 A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on July 7, 2025, has been entered. Examiner Notes Examiner cites particular columns, paragraphs, figures and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. Claims 1-6, 8-11, 13-18, and 20-22 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. With respect to claim 1, lines 29-30 recite, with emphasis added, “wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the subscription,” but the claim does not previously recite a “subscription.” Furthermore, lines 14-15 recite, with emphasis added, “the first plurality of client devices subscribing to the first multiplayer debugger session” and lines 19-20 recite, with emphasis added, “the second plurality of client devices subscribing to the second multiplayer debugger session.” It is unclear whether “the subscription,” as recited on line 30, refers to “subscribing to the first multiplayer debugger session,” “subscribing to the second multiplayer debugger session,” or another subscription. The scope of the claim is therefore indefinite. For purposes of compact prosecution only, Examiner has interpreted lines 29-30 of claim 1 as reciting “wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the first plurality of client devices subscribing to the first multiplayer debugger session.” With respect to claims 8 and 15, each recites limitations similar to claim 1 and are likewise indefinite and have been interpreted similarly to claim 1 for purposes of compact prosecution (see the 35 USC 112(b) rejection of claim 1 above). Additionally, line 20 of claim 8 and line 19 of claim 15 each recite “the plurality of client devices.” It is unclear whether these refer to “a first plurality of client devices” or “a second plurality of client devices,” as previously recited on lines 6-7 and 10-11 of claim 8 respectively and lines 5-6 and 9-10 of claim 15 respectively. The scope of the claims is therefore indefinite. For purposes of compact prosecution only, Examiner has interpreted line 20 of claim 8 and line 19 of claim 15 as reciting “the first plurality of client devices.” With respect to all dependent claims, each inherits the 35 USC 112(b) deficiencies of its respective base claim (see the rejections of claim 1, 8, and 15 above). With respect to claims 4, 10, and 17, lines 3-4 of claim 4 recite “the plurality of client devices.” It is unclear whether this refers to “a first plurality of client devices,” as recited on line 13 of claim 1, or “a second plurality of client devices,” as recited on line 18 of claim 1. The scope of the claim is therefore indefinite. For purposes of compact prosecution only, Examiner has interpreted lines 3-4 of claim 4 as reciting “the first plurality of client devices.” Claims 10 and 17 recite limitations similar to claim 4 and are likewise indefinite and have been interpreted similarly to claim 4 for purposes of compact prosecution. With respect to claim 6, line 1 recites “the debugger multiplexer.” It is unclear if this refers to “a first debugger multiplexer instance,” as recited on lines 11-12 of claim 1, “a second debugger multiplexer instance,” as recited on lines 16-17 of claim 1, or something else altogether. The scope of the claim is therefore indefinite. For purposes of compact prosecution only, Examiner has interpreted line 1 of claim 6 as reciting “the first multiplexer debugger instance.” With respect to claim 20, line 5 recites “the third multiplayer debugger.” It is unclear whether this is the same as “a third multiplayer debugger session,” as previously recited on lines 3-4, which renders the scope of the claim indefinite. For purposes of compact prosecution only, Examiner has interpreted line 5 as reciting “the third multiplayer debugger session.” 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, 2, 3, 5, 6, 8, 9, 11, 14, 15, 16, 18, 21, and 22 are rejected under 35 U.S.C. 103 as being unpatentable over Bates (US 20120084758, hereinafter Bates) in view of Garcia (US 9471466, hereinafter Garcia) and Zinkovsky et al. (US 20120151452, hereinafter Zinkovsky). With respect to claim 1, Bates discloses A system (e.g., Fig. 1) comprising: one or more processors; and a memory coupled to the one or more processors (e.g. Fig. 1, particularly, Processor 156 and RAM 168.) and comprising: a computer program (e.g., Fig. 1 and associated text, e.g., [0030], back-end debugger (118) is an application that controls operation of another application -- the debuggee (120) -- for the purpose of testing execution of the debuggee [a computer program].); ; and a configured to manage a plurality of multiplayer debugger sessions , the configured to (e.g., Fig. 1 and associated text, e.g., [0024], A debug session is a semi-permanent interactive information interchange between at least one debug client and a debug server for the purposes of a debugging a particular debuggee; [0028], listening agent (129) may … begin execution of a particular collaborative debug server application (130) upon request … The server (102) in the example of FIG. 1, may support simultaneous execution of several different debug server applications, each of which may debug separate debuggees [a plurality of multiplayer debugger sessions]; [0030] The debug administrator (114) is a module … that administers a collaborative debug session.): create, , a first multiplayer debugger session and a second multiplayer debugger session (e.g., Fig. 1 and associated text, e.g., [0024], A debug session [multiplayer debugger session] is a semi-permanent interactive information interchange between at least one debug client and a debug server for the purposes of debugging a particular debuggee; [0028], listening agent (129) may … begin execution of a particular collaborative debug server application (130) upon request … The server (102) in the example of FIG. 1, may support simultaneous execution of several different debug server applications, each of which may debug separate debuggees [a first multiplayer debugger session and a second multiplayer debugger session].), wherein the first multiplayer debugger session comprises a first debugger multiplexer instance and a first debugger , and supports a first plurality of client devices in accordance with the first plurality of client devices subscribing to the first multiplayer debugger session (e.g., Figs. 1, 4, and 9 and associated text, e.g., [0030], registering [subscribing] and unregistering clients in a debug session; [0031], From the perspective of the back-end debugger (118) [first debugger], the debugger is controlled by a single source, the message router (116) [first debugger multiplexer instance]; [0032], receiving, by the debug server (102) from the debug clients (104) [first plurality of client devices] asynchronously during a debug session of the debuggee (120), a plurality of application-level messages (126); routing, by the message router (116) … the application-level messages (126) among the debug clients, the debug administrator, and the back-end debugger … the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).), and wherein the second multiplayer debugger session comprises a second debugger multiplexer instance and a second debugger , and supports a second plurality of client devices in accordance with the second plurality of client devices subscribing to the second multiplayer debugger session (Id.,; [0028], The server (102) in the example of FIG. 1, may support simultaneous execution of several different [first and second] debug server applications, each of which may debug separate debuggees; [0029], collaborative debug server application (130) also includes a debug administrator (114), a message router (116), a back-end debugger (118), and a debuggee (120); [0032], the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).); receive, from a first client device of the first plurality of client devices, a debugger operation for the first multiplayer debugger session (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0071], generating, by a requesting debug client (702), a request (706) to issue a command (718) [debugger operation] to the back-end debugger (118), sending the request (706) to the debug server (102), and receiving the request (722) by the message router (116); [0073], executing the command (718) causes the back-end debugger (118) to initiate execution (719) of the debuggee, for debugging purposes, monitor the execution of the debuggee, and gather results (720).), transmit the debugger operation to the first debugger (e.g., Figs. 1-3, 7, and 9 and associated text, e.g., [0073], The method of FIG. 7 also includes routing the request (706) to the back-end debugger (118) by issuing the command (718) to the back-end debugger (118) by the message router (116).), determine, by the first debugger multiplexer instance, an updated debugger state in accordance with the debugger operation (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0074], After executing the issued command in the example of FIG. 7, the back-end debugger (118) returns to the message router (116) results (720) of the execution of the issued command, the message router [debugger multiplexer instance] receives the results (718) [updated debugger state in accordance with the debugger operation]. The nature of the results (720) of the execution depend upon the type of command (718) executed by the back-end debugger. A command to evaluate a variable for example, may return as little as an integer, while a command to step into execution of the debuggee may return significantly more information--variable values, register values, memory values, line number, source code file name, and thread number and so on. The results (720), once received by the requesting client (702) may be used to control the client-specific GUI, changing the information displayed on the GUI.), transmit, by the first debugger multiplexer instance, the updated debugger state to a remainder of the first plurality of client devices (e.g., Figs. 1-3, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622) … and receiving, by the debug clients identified as intended recipients (602), the reply (622) … having … a payload (632) included in the request (606) to distribute data; [0099], payload that includes the results of the evaluation of the variable; see also [0097-99].), wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the subscription (please note the 35 USC 112(b) rejection and interpretation above; Id., particularly, [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered [subscribing] in the debug session.), and wherein the first multiplayer debugger session and the second multiplayer debugger session are active at a same time (e.g., Fig. 1 and associated text, e.g., [0028], simultaneous execution of several different debug server applications, each of which may debug separate debuggees.). Although Bates discloses multiple debug server modules that cooperatively perform the functionality of a debugger session manager (see above), it does not appear to disclose a singular debugger session manager. However, this is taught in analogous art, Garcia (e.g., Fig. 1, particularly, Debug Manager 108 [debugger session manager] along with associated text, e.g., col. 3:33-49, The debug manager 108 provides two distinct services (among other functionality): a connection service 130 and a debug-request service 132 … their functionality is provided in an integrated single module.). Although Bates discloses first and second debugger sessions for debugging separate computer programs (see above), it does not appear to disclose that the debugger sessions are both for the computer program. However, this is further taught in Garcia (e.g., Fig. 1, particularly, e.g., col. 3:33-49, the back-end server may run … multiple instances of the same application, in multiple sessions for one or more clients.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the debugging invention of Bates with the debugger manager invention of Garcia, such that debugging sessions are for an instance of the same program and are managed by an integrated debug manager, because integrating multiple management modules into one would simplify implementation and simultaneously debugging instances of the same program would speed up debugging efforts for that program. Although Bates discloses a first debugger and a second debugger (see above), it does not appear to disclose a debugger module … instance of the debugger module … instance of the debugger module … instance. However, this is taught in analogous art, Zinkovsky (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116 [instances of the debugger module].). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the debugger invention of Zinkovsky, such that debuggers are provided in sessions as an instance of a debugger module, because “Users need to be able to debug their code instances without having any impact on each other or on anyone else being served by the process in any way,” as suggested by Zinkovsky (see [0011]). With respect to claim 8, Bates discloses A non-transitory computer readable medium comprising computer readable code executable by one or more processors to (e.g., Fig. 1 and associated text, e.g., [0101], aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.): create a first multiplayer debugger session and a second multiplayer debugger session for , wherein the first multiplayer debugger session comprises a first debugger multiplexer instance and a first debugger , and supports a first plurality of client devices in accordance with the first plurality of client devices subscribing to the first multiplayer debugger session (e.g., Figs. 1, 4, and 9 and associated text, e.g., [0030], registering [subscribing] and unregistering clients in a debug session; [0031], From the perspective of the back-end debugger (118), the debugger is controlled by a single source, the message router (116) [first debugger multiplexer instance]; [0032], receiving, by the debug server (102) from the debug clients (104) [first plurality of client devices] asynchronously during a debug session of the debuggee (120), a plurality of application-level messages (126); routing, by the message router (116) … the application-level messages (126) among the debug clients, the debug administrator, and the back-end debugger [first debugger] … the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).), and wherein the second multiplayer debugger session comprises a second debugger multiplexer instance and a second debugger , and supports a second plurality of client devices in accordance with the second plurality of client devices subscribing to the second multiplayer debugger session (Id.,; [0028], The server (102) in the example of FIG. 1, may support simultaneous execution of several different [first and second] debug server applications, each of which may debug separate debuggees; [0029], collaborative debug server application (130) also includes a debug administrator (114), a message router (116), a back-end debugger (118), and a debuggee (120); [0032], the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).); receive, from a first client device of the first plurality of client devices, a debugger operation for the first multiplayer debugger session (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0071], generating, by a requesting debug client (702), a request (706) to issue a command (718) [debugger operation] to the back-end debugger (118), sending the request (706) to the debug server (102), and receiving the request (722) by the message router (116); [0073], executing the command (718) causes the back-end debugger (118) to initiate execution (719) of the debuggee, for debugging purposes, monitor the execution of the debuggee, and gather results (720).); transmit the debugger operation to the first debugger (e.g., Figs. 1-3, 7, and 9 and associated text, e.g., [0073], The method of FIG. 7 also includes routing the request (706) to the back-end debugger (118) by issuing the command (718) to the back-end debugger (118) by the message router (116).); determine, by the first debugger multiplexer instance, an updated debugger state in accordance with the debugger operation (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0074], After executing the issued command in the example of FIG. 7, the back-end debugger (118) returns to the message router (116) results (720) of the execution of the issued command, the message router [debugger multiplexer instance] receives the results (718) [updated debugger state in accordance with the debugger operation]. The nature of the results (720) of the execution depend upon the type of command (718) executed by the back-end debugger. A command to evaluate a variable for example, may return as little as an integer, while a command to step into execution of the debuggee may return significantly more information--variable values, register values, memory values, line number, source code file name, and thread number and so on. The results (720), once received by the requesting client (702) may be used to control the client-specific GUI, changing the information displayed on the GUI.); and transmit, by the first debugger multiplexer instance, the updated debugger state to a remainder of the plurality of client devices (please note the 35 USC 112(b) rejection and interpretation above; e.g., Figs. 1-3, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622) … and receiving, by the debug clients identified as intended recipients (602), the reply (622) … having … a payload (632) included in the request (606) to distribute data; [0099], payload that includes the results of the evaluation of the variable.), wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the subscription (please note the 35 USC 112(b) rejection and interpretation above; Id., particularly, [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session.), and wherein the first multiplayer debugger session and the second multiplayer debugger session are active at a same time (e.g., Fig. 1 and associated text, e.g., [0028], simultaneous execution of several different debug server applications, each of which may debug separate debuggees.). Although Bates discloses first and second debugger sessions for debugging separate computer programs (see above), it does not appear to disclose that the debug sessions are both for a computer program. However, this is taught in analogous art, Garcia (e.g., Fig. 1, particularly, e.g., col. 3:33-49, the back-end server may run … multiple instances of the same application, in multiple sessions for one or more clients.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the debugging invention of Bates with the debugger manager invention of Garcia, such that debugging sessions are for an instance of the same program, because simultaneously debugging instances of the same program would speed up debugging efforts for that program. Although Bates discloses a first debugger and a second debugger (see above), it does not appear to disclose instance of a debugger module … instance of the debugger module … instance. However, this is taught in analogous art, Zinkovsky (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116 [instances of the debugger module].). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the debugger invention of Zinkovsky, such that debuggers are provided in sessions as an instance of a debugger module, because “Users need to be able to debug their code instances without having any impact on each other or on anyone else being served by the process in any way,” as suggested by Zinkovsky (see [0011]). With respect to claim 15, Bates discloses A method (e.g., [0005], Methods … for collaborative software debugging) comprising: creating a first multiplayer debugger session and a second multiplayer debugger session simultaneous execution of several different debug server applications, each of which may debug separate debuggees [a first multiplayer debugger session and a second multiplayer debugger session].), wherein the first multiplayer debugger session comprises a first debugger multiplexer instance and a first debugger , and supports a first plurality of client devices in accordance with the first plurality of client devices subscribing to the first multiplayer debugger session (e.g., Figs. 1, 4, and 9 and associated text, e.g., [0030], registering [subscribing] and unregistering clients in a debug session; [0031], From the perspective of the back-end debugger (118), the debugger is controlled by a single source, the message router (116) [first debugger multiplexer instance]; [0032], receiving, by the debug server (102) from the debug clients (104) [first plurality of client devices] asynchronously during a debug session of the debuggee (120), a plurality of application-level messages (126); routing, by the message router (116) … the application-level messages (126) among the debug clients, the debug administrator, and the back-end debugger [first debugger] … the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).), and wherein the second multiplayer debugger session comprises a second debugger multiplexer instance and a second debugger , and supports a second plurality of client devices in accordance with the second plurality of client devices subscribing to the second multiplayer debugger session (Id.,; [0028], The server (102) in the example of FIG. 1, may support simultaneous execution of several different [first and second] debug server applications, each of which may debug separate debuggees; [0029], collaborative debug server application (130) also includes a debug administrator (114), a message router (116), a back-end debugger (118), and a debuggee (120); [0032], the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).); receiving, from a first client device of the first plurality of client devices, a debugger operation for the first multiplayer debugger session (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0071], generating, by a requesting debug client (702), a request (706) to issue a command (718) [debugger operation] to the back-end debugger (118), sending the request (706) to the debug server (102), and receiving the request (722) by the message router (116); [0073], executing the command (718) causes the back-end debugger (118) to initiate execution (719) of the debuggee, for debugging purposes, monitor the execution of the debuggee, and gather results (720).); transmitting the debugger operation to the first debugger (e.g., Figs. 1-3, 7, and 9 and associated text, e.g., [0073], The method of FIG. 7 also includes routing the request (706) to the back-end debugger (118) by issuing the command (718) to the back-end debugger (118) by the message router (116).); determining, by the first debugger multiplexer instance, an updated debugger state in accordance with the debugger operation (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0074], After executing the issued command in the example of FIG. 7, the back-end debugger (118) returns to the message router (116) results (720) of the execution of the issued command, the message router [debugger multiplexer instance] receives the results (718) [updated debugger state in accordance with the debugger operation]. The nature of the results (720) of the execution depend upon the type of command (718) executed by the back-end debugger. A command to evaluate a variable for example, may return as little as an integer, while a command to step into execution of the debuggee may return significantly more information--variable values, register values, memory values, line number, source code file name, and thread number and so on. The results (720), once received by the requesting client (702) may be used to control the client-specific GUI, changing the information displayed on the GUI.); and transmitting, by the first debugger multiplexer instance, the updated debugger state to a remainder of the plurality of client devices (please note the 35 USC 112(b) rejection and interpretation above; e.g., Figs. 1-3, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622) … and receiving, by the debug clients identified as intended recipients (602), the reply (622) … having … a payload (632) included in the request (606) to distribute data; [0099], payload that includes the results of the evaluation of the variable.), wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the subscription (please note the 35 USC 112(b) rejection and interpretation above; Id., particularly, [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session.), and wherein the first multiplayer debugger session and the second multiplayer debugger session are active at a same time (e.g., Fig. 1 and associated text, e.g., [0028], simultaneous execution of several different debug server applications, each of which may debug separate debuggees.). Although Bates discloses first and second debugger sessions for debugging separate computer programs (see above), it does not appear to disclose that the debug sessions are both for a computer program. However, this is taught in analogous art, Garcia (e.g., Fig. 1, particularly, e.g., col. 3:33-49, the back-end server may run … multiple instances of the same application, in multiple sessions for one or more clients.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the debugging invention of Bates with the debugger manager invention of Garcia, such that debugging sessions are for an instance of the same program, because simultaneously debugging instances of the same program would speed up debugging efforts for that program. Although Bates discloses a first debugger and a second debugger (see above), it does not appear to disclose instance of a debugger module … instance of the debugger module … instance. However, this is taught in analogous art, Zinkovsky (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116 [instances of the debugger module].). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the debugger invention of Zinkovsky, such that debuggers are provided in sessions as an instance of a debugger module, because “Users need to be able to debug their code instances without having any impact on each other or on anyone else being served by the process in any way,” as suggested by Zinkovsky (see [0011]). With respect to claims 2, 9, and 16, Bates also discloses wherein the first debugger multiplexer instance is further configured to cause a presentation of a user interface corresponding to the first multiplayer debugger session to update in accordance with the updated debugger state (e.g., Figs. 1-3 and associated text, e.g., [0024], In the example of FIG. 1, the client-specific GUI (124) is a client-specific display of a debug session of the debuggee; [0031], the back-end debugger (118) is controlled indirectly by multiple clients through use of an intermediary--the message router (116) [first debugger multiplexer instance]. From the perspective of the back-end debugger (118), the debugger is controlled by a single source, the message router (116); [0033], The back-end debugger (118), responsive to the issued command, may then evaluate the variable and provide the results of the evaluation to the message router (116) [first debugger multiplexer instance]. Returning client-specific debug results in such embodiments may include returning the results of the evaluation to the requesting debug client (106); [0042], upon a mouse-over of the variable named `argument,` a request is sent, by the debug client presenting the GUI (124) of FIG. 2, to a debug server to issue a command to a back-end debugger to evaluate the variable, the debug client receives results of the evaluation, and a pop-up text box (228) is displayed that includes the results [update in accordance with the updated debugger state]; [0053], displaying (326), by each debug client in the client-specific GUI (124) on a display device (180), the client-specific debug results (322).). With respect to claim 3, Garcia also discloses a debugger adapter configured to abstract the debugger operation, wherein the debugger adapter provides multilanguage functionality based on an abstraction of the debugger operation (e.g., Figs. 1-2 and associated text, e.g., col. 3:5-32, The system 100 may include a front-end adapter 120 that translates browser-specific representations of debug requests and associated data into a generic representation [abstract the debugger operation] … The front-end plugin 126 may process the received debug requests, e.g., to enter them in a generic format; col. 3:65-col. 4:18, converting the request into a language and format that is understandable by the back-end debugger … rendering the debug-request service 132 suitable for use with multiple back-end debuggers 106 for which back-end plugins 134 are available … Further plugins 134 may be provided for applications written, for example, in Java, C, or any other suitable programming language.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the debugging invention of Bates with the debugger manager invention of Garcia, such that multilanguage functionality is provided, for the same reasons set forth above and also because it addresses the problem that debugging web applications “is often cumbersome and takes up valuable developer time” by “allowing an application developer to debug web applications without leaving the browser,” as suggested by Garcia (see col. 1:32-32 and col. 2:15-16.). With respect to claim 5, Bates also discloses wherein the first debugger multiplexer instance is further configured to transmit the updated debugger state in accordance with a determination that the debugger operation satisfies a share criteria (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0032], routing, by the message router (116) [the first debugger multiplexer instance] in accordance with an application-level message passing protocol, the application-level messages (126) among the debug clients; [0097], presenting (1204), to the user of the particular debug client through the client-specific GUI, an option to publish the results of the evaluation of the variable to other debug clients; [0098], receiving (1204) … an indication to publish the results of the evaluation of the variable to other debug clients [in accordance with a determination that the debugger operation satisfies a share criteria]; [0099], The reply to the distribute request may be implemented as an application-level message having a REQUEST REPLY message type and a payload that includes the results of the evaluation of the variable [transmit the updated debugger state].). With respect to claim 6, Bates also discloses wherein the debugger multiplexer is further configured to: receive, from the first client device, a second debugger operation, transmit the second debugger operation to debugger operation] routed to the back-end debugger (118).), determine that the second debugger operation does not satisfy a share criterion, and in accordance with a determination that the second debugger operation does not satisfy the share criterion, cause a debugger view to be updated at the first client device in accordance with the second debugger operation (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0040], In the GUI (124) of FIG. 2, the Collaborate menu may, for example, include a menu item for private or public variable evaluation. Selecting the private menu item may invoke a popup or other GUI window from which a variable or variables may be selected for private evaluation by a user [determine that the second debugger operation does not satisfy a share criterion]. `Private` as the term is used here means that the results of the evaluation are returned only to the client requesting the evaluation; [0042], debug client receives results of the evaluation, and a pop-up text box (228) is displayed that includes the results.) and Zinkovsky teaches the debugger module (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116.). 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 debugger invention of Zinkovsky for the same reason set forth above. With respect to claim 11, Bates also discloses receive, from the first client device, a second debugger operation, transmit the second debugger operation to , determine that the second debugger operation does not satisfy a share criterion, and in accordance with a determination that the second debugger operation does not satisfy the share criterion, cause a debugger view to be updated at the first client device in accordance with the second debugger operation (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0040], In the GUI (124) of FIG. 2, the Collaborate menu may, for example, include a menu item for private or public variable evaluation. Selecting the private menu item may invoke a popup or other GUI window from which a variable or variables may be selected for private evaluation by a user [determine that the second debugger operation does not satisfy a share criterion]. `Private` as the term is used here means that the results of the evaluation are returned only to the client requesting the evaluation; [0042], debug client receives results of the evaluation, and a pop-up text box (228) is displayed that includes the results.) and Zinkovsky teaches the debugger module (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116.). 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 debugger invention of Zinkovsky for the same reason set forth above. With respect to claim 14, Bates also discloses provide a user selectable option to a new client device to join the first multiplayer debugger session or the second multiplayer debugger session for the program (e.g., Figs. 1-3, 4, and 11-12 along with associated text, e.g., [0048], detecting (304), by each debug client (104), user (101 on FIG. 1) input (306) through the client-specific GUI (124). Detecting (304), user input (306) through the client-specific GUI (124) may be carried out in various ways including … detecting selection of drop-down menu items, detecting mouse-clicks on GUI items, such as GUI buttons, and so on; [0049], generating (308), by each debug client (104) in dependence upon the detected user input (306) [user selectable option], one or more application-level messages (310); [0055], FIG. 4 depicts a debug client [new client] -- the requesting client (402) of FIG. 4 -- generating (308 on FIG. 3) one or more application-level messages (310 on FIG. 3). In the example of FIG. 4, the requesting client (402) generates a request (406) to join the debug session [join the first multiplayer debugger session].). With respect to claim 18, Bates also discloses receiving, from the first client device, a second debugger operation, transmitting the second debugger operation to the first debugger , determining that the second debugger operation does not satisfy a share criterion, and in accordance with the determination that the second debugger operation does not satisfy the share criterion, causing a debugger view to be updated at the first client device in accordance with the second debugger operation (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0040], In the GUI (124) of FIG. 2, the Collaborate menu may, for example, include a menu item for private or public variable evaluation. Selecting the private menu item may invoke a popup or other GUI window from which a variable or variables may be selected for private evaluation by a user [determine that the second debugger operation does not satisfy a share criterion]. `Private` as the term is used here means that the results of the evaluation are returned only to the client requesting the evaluation; [0042], debug client receives results of the evaluation, and a pop-up text box (228) is displayed that includes the results.) and Zinkovsky teaches instance of the debugger module (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116.). 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 debugger invention of Zinkovsky for the same reason set forth above. With respect to claims 21 and 22, Bates also discloses transmit the updated debugger state in accordance with a determination that the debugger operation satisfies a share criteria (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0040], In the GUI (124) of FIG. 2, the Collaborate menu may, for example, include a menu item for private or public variable evaluation … ‘Public’ evaluation [debugger operation satisfies a share criteria] by contrast means that the results of the evaluation may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session.). Claims 4, 10, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Bates in view of Garcia and Zinkovsky, as applied to claims 1, 8, and 15 above, and further in view of Chandran et al. (US 20120317443, hereinafter Chandran). With respect to claim 4, Bates also discloses wherein the first debugger multiplexer instance is further configured to: transmit the updated debugger state to the remainder of the plurality of client devices based on an identification the first multiplayer debugger session among the plurality of multiplayer debugger sessions (please note the 35 USC 112(b) rejection and interpretation above; e.g., Figs. 1-4, 6, 7, 9, and 11-12 along with associated text, e.g., [0028], simultaneous execution of several different debug server applications [plurality of multiplayer debugger sessions], each of which may debug separate debuggees; [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622); [0058], a client identifier (420) unique to the debug session. After assignment a client identifier may be used in message passing among the debug clients, debug server, and debug administrator to identify a recipient of a message [based on an identification].). Although Bates discloses transmitting the updated debugger state to the remainder of the clients of the first multiplayer debugger session based on an identification (see a
Read full office action

Prosecution Timeline

Jan 04, 2023
Application Filed
Sep 03, 2024
Non-Final Rejection — §103, §112
Dec 05, 2024
Response Filed
Jan 24, 2025
Final Rejection — §103, §112
May 09, 2025
Interview Requested
Jun 23, 2025
Interview Requested
Jul 07, 2025
Request for Continued Examination
Jul 13, 2025
Response after Non-Final Action
Sep 20, 2025
Non-Final Rejection — §103, §112
Mar 23, 2026
Response after Non-Final Action
Mar 23, 2026
Response Filed

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12591505
ANALYSIS OF CODE COVERAGE DIFFERENCES ACROSS ENVIRONMENTS
2y 5m to grant Granted Mar 31, 2026
Patent 12572372
SEMANTIC METADATA VALIDATION
2y 5m to grant Granted Mar 10, 2026
Patent 12572361
METHOD, APPARATUS, COMPUTER DEVICE, AND STORAGE MEDIUM FOR DETERMINING PAGE JUMP INFORMATION
2y 5m to grant Granted Mar 10, 2026
Patent 12547379
GENERATING TARGET LANGUAGE CODE FROM SOURCE LANGUAGE CODE
2y 5m to grant Granted Feb 10, 2026
Patent 12541344
RECORDING MEDIUM, PROGRAMMING ASSISTING DEVICE, AND PROGRAMMING ASSISTING METHOD
2y 5m to grant Granted Feb 03, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
79%
Grant Probability
99%
With Interview (+56.6%)
2y 9m
Median Time to Grant
High
PTA Risk
Based on 331 resolved cases by this examiner. Grant probability derived from career allow 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