bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: failed backtrace


From: M Johnson
Subject: Re: failed backtrace
Date: Sat, 16 Feb 2002 13:50:42 -0500

On Thu, Feb 14, 2002 at 05:51:49PM -0800, Thien-Thi Nguyen wrote:
> thanks for the bug report.  i have started to look at this.  it appears
> the environment at segf time has both `a' and `commandls' as names, but
> no value for `a':
> 
> (gdb) gp env
> $5 = 0x80651c8 "(((a commandls) (\"/usr/local/bin/guile\")) #<eval-closure 
> 40245828>)"
> 
> because the bad-define-placement error is correct -- using `local-eval'
> requires application and thus the head-of-scope requirement for internal
> defines cannot be met -- my question then becomes: why is `a' in the
> environment at all?
> 
> thi
> 
Here is a simplified version of segf.scm:


(define (fnc args)
  (local-eval  '(define a b) (the-environment)))


Note that backtrace now works, but there's still a problem:


guile> guile> (fnc '(hello))
standard input:2:17: In expression (define a b):
standard input:2:17: Bad define placement
ABORT: (misc-error)

Type "(backtrace)" to get more information or "(debug)" to enter the debugger.
guile> (debug)
This is the Guile debugger; type "help" for help.
There are 3 frames on the stack.

Frame 2:    (define a b)
debug> eval (the-environment)
;value: (((a a args) (hello)) #<compiled-closure #<primitive-procedure 
eval-closure>>)
debug> ba
0* [fnc (hello)]
1  [local-eval # #]
2* (define a b)
debug> eval (the-environment)

Process scheme segmentation fault



Note also that here we're getting 2 "a"s in the environment. (sometimes i got 
three, perhaps with slightly different code)

I don't know if this helps or sends you off in another direction. --Michael




reply via email to

[Prev in Thread] Current Thread [Next in Thread]