@@ -56,9 +56,9 @@ let _set_frag_events symbols conn frag =
5656 |> Seq. map (fun it -> (module_.frag, it.ev_pos)))
5757 |> Lwt_seq. iter_s (Wire_protocol. set_event conn);% lwt
5858 Lwt. return
59- ( debug_modules
59+ (debug_modules
6060 |> Seq. map (fun (it : Code_module.t ) -> (it.frag, it.module_id))
61- |> FragModuleIdSet_. of_seq )
61+ |> FragModuleIdSet_. of_seq)
6262
6363let root ?debug_filter debug_sock symbols_file =
6464 let % lwt fd, _ = Lwt_unix. accept debug_sock in
@@ -94,7 +94,7 @@ let fork t debug_sock =
9494 if pid' = pid then Lwt. return conn
9595 else (
9696 Lwt_unix. close fd;% lwt
97- wait_conn () )
97+ wait_conn () )
9898 in
9999 let % lwt conn = wait_conn () in
100100 Lwt. return
@@ -133,14 +133,14 @@ let stop ?(gracefully = false) t =
133133 if gracefully then Wire_protocol. stop t.conn
134134 else (
135135 Unix. kill t.pid 9 ;
136- Lwt. return () );% lwt
136+ Lwt. return () );% lwt
137137 t.dead < - true ;
138138 let () =
139139 match t.parent with
140140 | None -> ()
141141 | Some parent -> Lwt. async (fun () -> Wire_protocol. wait parent.conn)
142142 in
143- Lwt. return () )
143+ Lwt. return () )
144144
145145let execute ?(yield_steps = Int. max_int)
146146 ?(on_yield = fun () -> Lwt. return `Continue ) ?trap_barrier
@@ -197,33 +197,31 @@ let execute ?(yield_steps = Int.max_int)
197197 let % lwt r = run () in
198198 if not (t.breakpoints |> PcSet_. mem pc) then (
199199 Wire_protocol. reset_instr t.conn pc;% lwt
200- Wire_protocol. set_event t.conn pc )
200+ Wire_protocol. set_event t.conn pc)
201201 else Lwt. return () ;% lwt
202202 Lwt. return r
203203 in
204- let run =
205- match trap_barrier with
206- | None -> run
207- | Some trap_barrier ->
208- fun () ->
209- Wire_protocol. set_trap_barrier t.conn trap_barrier;% lwt
210- let % lwt summary, remaining_steps, sp_pc = run () in
211- Wire_protocol. set_trap_barrier t.conn 0 ;% lwt
212- if summary = `Trap_barrier then
213- let stop_on_event () =
214- let % lwt summary', remaining_steps', sp_pc' = exec_dynlink _1 in
215- let remaining_steps =
216- remaining_steps ++ (_1 -- remaining_steps')
217- in
218- match summary' with
219- | `Trap_barrier -> assert false
220- | `Event | `Breakpoint ->
221- Lwt. return (`Trap_barrier , remaining_steps, sp_pc')
222- | `Exited | `Uncaught_exc | `Yield_stop _ ->
223- Lwt. return (summary', remaining_steps, sp_pc')
224- in
225- stop_on_event ()
226- else Lwt. return (summary, remaining_steps, sp_pc)
204+ let run () =
205+ let % lwt () =
206+ match trap_barrier with
207+ | None -> Lwt. return ()
208+ | Some trap_barrier -> Wire_protocol. set_trap_barrier t.conn trap_barrier
209+ in
210+ let % lwt summary, remaining_steps, sp_pc = run () in
211+ Wire_protocol. set_trap_barrier t.conn 0 ;% lwt
212+ if summary = `Trap_barrier then
213+ let rec stop_on_event () =
214+ let % lwt summary', remaining_steps', sp_pc' = exec_dynlink _1 in
215+ let remaining_steps = remaining_steps ++ (_1 -- remaining_steps') in
216+ match summary' with
217+ | `Trap_barrier -> stop_on_event ()
218+ | `Event | `Breakpoint ->
219+ Lwt. return (`Trap_barrier , remaining_steps, sp_pc')
220+ | `Exited | `Uncaught_exc | `Yield_stop _ ->
221+ Lwt. return (summary', remaining_steps, sp_pc')
222+ in
223+ stop_on_event ()
224+ else Lwt. return (summary, remaining_steps, sp_pc)
227225 in
228226 let % lwt summary, remaining_steps, sp_pc = run () in
229227 if summary = `Exited || summary = `Uncaught_exc then stop ~gracefully: true t
0 commit comments