Commit 0daf69ba authored by Simon Marlow's avatar Simon Marlow
Browse files

fix breakpoints in unregisterised mode

parent 3e2cd89a
...@@ -847,15 +847,20 @@ run_BCO: ...@@ -847,15 +847,20 @@ run_BCO:
// in a reasonable state for the GC and so that // in a reasonable state for the GC and so that
// execution of this BCO can continue when we resume // execution of this BCO can continue when we resume
ioAction = (StgClosure *) deRefStablePtr (rts_breakpoint_io_action); ioAction = (StgClosure *) deRefStablePtr (rts_breakpoint_io_action);
Sp -= 8; Sp -= 9;
Sp[7] = (W_)obj; Sp[8] = (W_)obj;
Sp[6] = (W_)&stg_apply_interp_info; Sp[7] = (W_)&stg_apply_interp_info;
Sp[6] = (W_)&stg_noforceIO_info; // see [unreg] below
Sp[5] = (W_)new_aps; // the AP_STACK Sp[5] = (W_)new_aps; // the AP_STACK
Sp[4] = (W_)BCO_PTR(arg3_freeVars); // the info about local vars of the breakpoint Sp[4] = (W_)BCO_PTR(arg3_freeVars); // the info about local vars of the breakpoint
Sp[3] = (W_)False_closure; // True <=> a breakpoint Sp[3] = (W_)False_closure; // True <=> a breakpoint
Sp[2] = (W_)&stg_ap_pppv_info; Sp[2] = (W_)&stg_ap_pppv_info;
Sp[1] = (W_)ioAction; // apply the IO action to its two arguments above Sp[1] = (W_)ioAction; // apply the IO action to its two arguments above
Sp[0] = (W_)&stg_enter_info; // get ready to run the IO action Sp[0] = (W_)&stg_enter_info; // get ready to run the IO action
// Note [unreg]: in unregisterised mode, the return
// convention for IO is different. The
// stg_noForceIO_info stack frame is necessary to
// account for this difference.
// set the flag in the TSO to say that we are now // set the flag in the TSO to say that we are now
// stopping at a breakpoint so that when we resume // stopping at a breakpoint so that when we resume
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment