... |
... |
@@ -1506,11 +1506,11 @@ run_BCO: |
1506
|
1506
|
|
1507
|
1507
|
// stop the current thread if either `stop_next_breakpoint` is
|
1508
|
1508
|
// true OR if the ignore count for this particular breakpoint is zero
|
1509
|
|
- StgInt ignore_count = ((StgInt*)breakPoints->payload)[BCO_LIT(arg6_tick_index)];
|
|
1509
|
+ StgInt ignore_count = ((StgInt*)breakPoints->payload)[BCO_LIT(arg4_info_index)];
|
1510
|
1510
|
if (stop_next_breakpoint == false && ignore_count > 0)
|
1511
|
1511
|
{
|
1512
|
1512
|
// decrement and write back ignore count
|
1513
|
|
- ((StgInt*)breakPoints->payload)[arg6_tick_index] = --ignore_count;
|
|
1513
|
+ ((StgInt*)breakPoints->payload)[BCO_LIT(arg4_info_index)] = --ignore_count;
|
1514
|
1514
|
}
|
1515
|
1515
|
else if (stop_next_breakpoint == true || ignore_count == 0)
|
1516
|
1516
|
{
|
... |
... |
@@ -1544,10 +1544,7 @@ run_BCO: |
1544
|
1544
|
// Arrange the stack to call the breakpoint IO action, and
|
1545
|
1545
|
// continue execution of this BCO when the IO action returns.
|
1546
|
1546
|
//
|
1547
|
|
- // ioAction :: Addr# -- the breakpoint tick module
|
1548
|
|
- // -> Addr# -- the breakpoint tick module unit id
|
1549
|
|
- // -> Int# -- the breakpoint tick index
|
1550
|
|
- // -> Addr# -- the breakpoint info module
|
|
1547
|
+ // ioAction :: Addr# -- the breakpoint info module
|
1551
|
1548
|
// -> Addr# -- the breakpoint info module unit id
|
1552
|
1549
|
// -> Int# -- the breakpoint info index
|
1553
|
1550
|
// -> Bool -- exception?
|
... |
... |
@@ -1557,23 +1554,17 @@ run_BCO: |
1557
|
1554
|
ioAction = (StgClosure *) deRefStablePtr (
|
1558
|
1555
|
rts_breakpoint_io_action);
|
1559
|
1556
|
|
1560
|
|
- Sp_subW(19);
|
1561
|
|
- SpW(18) = (W_)obj;
|
1562
|
|
- SpW(17) = (W_)&stg_apply_interp_info;
|
1563
|
|
- SpW(16) = (W_)new_aps;
|
1564
|
|
- SpW(15) = (W_)False_closure; // True <=> an exception
|
1565
|
|
- SpW(14) = (W_)&stg_ap_ppv_info;
|
1566
|
|
- SpW(13) = (W_)arg7_info_index;
|
1567
|
|
- SpW(12) = (W_)&stg_ap_n_info;
|
1568
|
|
- SpW(11) = (W_)BCO_LIT(arg5_info_mod_id);
|
1569
|
|
- SpW(10) = (W_)&stg_ap_n_info;
|
1570
|
|
- SpW(9) = (W_)BCO_LIT(arg3_info_mod);
|
1571
|
|
- SpW(8) = (W_)&stg_ap_n_info;
|
1572
|
|
- SpW(7) = (W_)arg6_tick_index;
|
|
1557
|
+ Sp_subW(13);
|
|
1558
|
+ SpW(12) = (W_)obj;
|
|
1559
|
+ SpW(11) = (W_)&stg_apply_interp_info;
|
|
1560
|
+ SpW(10) = (W_)new_aps;
|
|
1561
|
+ SpW(9) = (W_)False_closure; // True <=> an exception
|
|
1562
|
+ SpW(8) = (W_)&stg_ap_ppv_info;
|
|
1563
|
+ SpW(7) = (W_)BCO_LIT(arg4_info_index);
|
1573
|
1564
|
SpW(6) = (W_)&stg_ap_n_info;
|
1574
|
|
- SpW(5) = (W_)BCO_LIT(arg4_tick_mod_id);
|
|
1565
|
+ SpW(5) = (W_)BCO_LIT(arg3_info_mod_id);
|
1575
|
1566
|
SpW(4) = (W_)&stg_ap_n_info;
|
1576
|
|
- SpW(3) = (W_)BCO_LIT(arg2_tick_mod);
|
|
1567
|
+ SpW(3) = (W_)BCO_LIT(arg2_info_mod_name);
|
1577
|
1568
|
SpW(2) = (W_)&stg_ap_n_info;
|
1578
|
1569
|
SpW(1) = (W_)ioAction;
|
1579
|
1570
|
SpW(0) = (W_)&stg_enter_info;
|