From 8edd35f3031e16f24e92320f29f6b1954e3f2d9b Mon Sep 17 00:00:00 2001 From: vsc Date: Tue, 13 Feb 2007 11:26:17 +0000 Subject: [PATCH] fix debugger git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1795 b08c6af1-5177-4d33-ba66-4b1c6b8b522a --- C/sysbits.c | 13 +++++++++---- pl/signals.yap | 15 ++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/C/sysbits.c b/C/sysbits.c index b815d1c26..c69b616e4 100644 --- a/C/sysbits.c +++ b/C/sysbits.c @@ -2162,12 +2162,17 @@ static Int p_putenv(void) "second arg to putenv/2"); return(FALSE); } else s2 = RepAtom(AtomOfTerm(t2))->StrOfAE; - p0 = p = Yap_AllocAtomSpace(strlen(s)+strlen(s2)+3); + while (!(p0 = p = Yap_AllocAtomSpace(strlen(s)+strlen(s2)+3))) { + if (!Yap_growheap(FALSE, MinHeapGap, NULL)) { + Yap_Error(OUT_OF_HEAP_ERROR, TermNil, Yap_ErrorMessage); + return FALSE; + } + } while ((*p++ = *s++) != '\0'); p[-1] = '='; while ((*p++ = *s2++) != '\0'); if (putenv(p0) == 0) - return(TRUE); + return TRUE; #if HAVE_STRERROR Yap_Error(OPERATING_SYSTEM_ERROR, TermNil, "in putenv(%s)", strerror(errno), p0); @@ -2175,11 +2180,11 @@ static Int p_putenv(void) Yap_Error(OPERATING_SYSTEM_ERROR, TermNil, "in putenv(%s)", p0); #endif - return (FALSE); + return FALSE; #else Yap_Error(SYSTEM_ERROR, TermNil, "putenv not available in this configuration"); - return (FALSE); + return FALSE; #endif } diff --git a/pl/signals.yap b/pl/signals.yap index 5acfe4332..ecca3fa28 100644 --- a/pl/signals.yap +++ b/pl/signals.yap @@ -166,17 +166,18 @@ read_sig. '$protected_env' :- yap_hacks:current_continuations([Env|Envs]), -%'$envs'(Envs), yap_hacks:continuation(Env,_,Addr,_), +%'$envs'(Envs, Addr), '$skim_envs'(Envs,Addr,Mod,Name,Arity), \+ '$external_call_seen'(Mod,Name,Arity). -% '$envs'([Env|Envs]) :- -% '$env_info'(Env,Mod0,Name0,Arity0), -% format(user_error,'~a:~w/~w~n',[Mod0,Name0,Arity0]), -% '$envs'(Envs). -% '$envs'([]). +'$envs'([Env|Envs], Addr0) :- + yap_hacks:cp_to_predicate(Addr0,Mod0,Name0,Arity0,ClId), + format(user_error,'~a:~w/~w ~d~n',[Mod0,Name0,Arity0,ClId]), + yap_hacks:continuation(Env,_,Addr,_), + '$envs'(Envs, Addr). +'$envs'([], _) :- format(user_error,'*****done*****~n',[]). '$skim_envs'([Env|Envs],Addr0,Mod,Name,Arity) :- yap_hacks:cp_to_predicate(Addr0, Mod0, Name0, Arity0, _ClId), @@ -192,6 +193,6 @@ read_sig. '$allowed'(Name,Arity). '$external_call_seen'(_,_,_). - '$allowed'('$spycall',3). + '$allowed'('$spycall',4). '$allowed'('$query',2).