fix debugging of logical update predicates.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@764 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
9a032b656a
commit
bcc49fc778
20
pl/debug.yap
20
pl/debug.yap
@ -437,7 +437,6 @@ debugging :-
|
|||||||
( '$get_value'(spy_sp,0) -> true ; !, fail ),
|
( '$get_value'(spy_sp,0) -> true ; !, fail ),
|
||||||
'$flags'(G,M,F,F),
|
'$flags'(G,M,F,F),
|
||||||
F /\ 16'2000 =\= 0, !, % dynamic procedure, immediate semantics
|
F /\ 16'2000 =\= 0, !, % dynamic procedure, immediate semantics
|
||||||
repeat,
|
|
||||||
'$recordedp'(M:G,Cl,_),
|
'$recordedp'(M:G,Cl,_),
|
||||||
'$get_value'(spy_gn,L),
|
'$get_value'(spy_gn,L),
|
||||||
( '$spycall_dynamic'(G,M,Cl) ;
|
( '$spycall_dynamic'(G,M,Cl) ;
|
||||||
@ -445,28 +444,20 @@ debugging :-
|
|||||||
Res = redo )
|
Res = redo )
|
||||||
),
|
),
|
||||||
( true ;
|
( true ;
|
||||||
'$get_value'(spy_sp,P), P \= 0, !, fail )
|
'$get_value'(spy_sp,P), P \= 0, !, fail ).
|
||||||
.
|
|
||||||
'$spycalls'(G,M,Res) :-
|
'$spycalls'(G,M,Res) :-
|
||||||
( '$get_value'(spy_sp,0) -> true ; !, fail ),
|
( '$get_value'(spy_sp,0) -> true ; !, fail ),
|
||||||
'$flags'(G,M,F,F),
|
'$flags'(G,M,F,F),
|
||||||
F /\ 16'8 =\= 0, !, % dynamic procedure, logical update semantics
|
F /\ 16'8 =\= 0, !, % dynamic procedure, logical update semantics
|
||||||
'$hold_index'(M:G, Index, Max), % hold an index on the procedure state when we called this goal
|
'$hold_index'(M:G, Index, Max), % hold an index on the procedure state when we called this goal
|
||||||
repeat,
|
'$gen_log_upd_clauses'(1, Max,Cl),
|
||||||
'$get_value'(spy_cl,Cl),
|
|
||||||
'$get_value'(spy_gn,L),
|
'$get_value'(spy_gn,L),
|
||||||
Maxx is Max+1,
|
|
||||||
'$set_value'(spy_cl,Maxx),
|
|
||||||
( Cl > Max -> !, fail ; true),
|
|
||||||
( '$log_upd_spycall'(G,M,Cl,Index) ;
|
( '$log_upd_spycall'(G,M,Cl,Index) ;
|
||||||
('$get_value'(spy_gn,L) ->
|
('$get_value'(spy_gn,L) ->
|
||||||
'$leave_creep', fail ; % to backtrack to repeat
|
'$leave_creep', fail ; % to backtrack to repeat
|
||||||
Res = redo )
|
Res = redo )
|
||||||
),
|
),
|
||||||
( true ;
|
( true ; '$get_value'(spy_sp,P), P \= 0, !, fail ).
|
||||||
'$get_value'(spy_sp,P), P \= 0, !, fail
|
|
||||||
)
|
|
||||||
.
|
|
||||||
'$spycalls'(G,M,Res) :-
|
'$spycalls'(G,M,Res) :-
|
||||||
( '$get_value'(spy_sp,0) -> true ; !, fail ),
|
( '$get_value'(spy_sp,0) -> true ; !, fail ),
|
||||||
repeat,
|
repeat,
|
||||||
@ -484,6 +475,11 @@ debugging :-
|
|||||||
( true ;
|
( true ;
|
||||||
'$get_value'(spy_sp,P), P \= 0, !, fail )
|
'$get_value'(spy_sp,P), P \= 0, !, fail )
|
||||||
.
|
.
|
||||||
|
'$gen_log_upd_clauses'(Cl, _,Cl).
|
||||||
|
'$gen_log_upd_clauses'(Cl0, Max,Cl) :-
|
||||||
|
Cl0 < Max,
|
||||||
|
ClI is Cl0+1,
|
||||||
|
'$gen_log_upd_clauses'(ClI, Max, Cl).
|
||||||
|
|
||||||
'$spycall'(G,M,Cl) :-
|
'$spycall'(G,M,Cl) :-
|
||||||
'$access_yap_flags'(10,0),
|
'$access_yap_flags'(10,0),
|
||||||
|
Reference in New Issue
Block a user