* Segment fault when Guile displays a backtrace
@ 2007-07-02 2:13 xeos
2007-07-10 21:31 ` Ludovic Courtès
2007-07-24 23:25 ` Ludovic Courtès
0 siblings, 2 replies; 4+ messages in thread
From: xeos @ 2007-07-02 2:13 UTC (permalink / raw)
To: bug-guile
[-- Attachment #1.1: Type: text/plain, Size: 1745 bytes --]
Hi everyone,
I have found a bug on cvs guile. It has been reproduced by two users
more too. When Guile crashed when it evaluates a wrong expression of
the form:
(set! 'symbol value)
Guile should throw (and it do throw) a exeption, Nevertheless it
crashed in the middle of backtrace log. Excuse me. I would have like
send a patch in order to fix it but but I am not familiarized with
guile project. Anyway, I put output of gdb below.
It is the output log:
$ guile
guile> (set! 'symbol value)
Backtrace:
In standard input:
1: 0* Violación de segmento
and it is the gdb output log:
[Thread debugging using libthread_db enabled]
[New Thread -1211996480 (LWP 12319)]
[New Thread -1214342256 (LWP 12322)]
guile> (set! 'd 5)
Backtrace:
In standard input:
1: 0*
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1211996480 (LWP 12319)]
unmemoize_exprs (exprs=0xb7b7ab30, env=0xb7b7aba0) at eval.c:588
588 {
(gdb) backtrace
#0 unmemoize_exprs (exprs=0xb7b7ab30, env=0xb7b7aba0) at eval.c:588
#1 0xb7e730b8 in unmemoize_expression (expr=0xb7b7ab80, env=0xb7b7aba0)
at eval.c:955
#2 0xb7e73245 in unmemoize_exprs (exprs=<value optimized out>,
env=0xb7b7aba0)
at eval.c:613
#3 0xb7e730b8 in unmemoize_expression (expr=0xb7b7ab80, env=0xb7b7aba0)
at eval.c:955
#4 0xb7e73245 in unmemoize_exprs (exprs=<value optimized out>,
env=0xb7b7aba0)
at eval.c:613
#5 0xb7e730b8 in unmemoize_expression (expr=0xb7b7ab80, env=0xb7b7aba0)
Good luck and excuse me again. :-)
--
Is all that we see or seem but a dream within a dream?
[-- Attachment #1.2: Type: text/html, Size: 2479 bytes --]
[-- Attachment #2: Type: text/plain, Size: 137 bytes --]
_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-guile
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Segment fault when Guile displays a backtrace
@ 2007-07-02 13:15 Marco Maggi
0 siblings, 0 replies; 4+ messages in thread
From: Marco Maggi @ 2007-07-02 13:15 UTC (permalink / raw)
To: bug-guile
"xeos" wrote:
>I have found a bug on cvs guile. It has been
>reproduced by two users more too. When Guile
>crashed when it evaluates a wrong expression
>of the form:
>
> (set! 'symbol value)
I have stumbled upon backtrace dump a number
of times, but I was never able to reduce it
to such a simple form.
IMHO it cannot be fixed without understanding
what is going on in "eval.c", which, unfortunately
is a royal mess of a module.
I also have a dump involving a "deval" call with
NULL arguments, which belongs to "eval.c", too.
--
Marco Maggi
"They say jump!, you say how high?"
Rage Against the Machine - "Bullet in the Head"
_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-guile
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Segment fault when Guile displays a backtrace
2007-07-02 2:13 xeos
@ 2007-07-10 21:31 ` Ludovic Courtès
2007-07-24 23:25 ` Ludovic Courtès
1 sibling, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2007-07-10 21:31 UTC (permalink / raw)
To: bug-guile
Hi,
xeos <xeos00@gmail.com> writes:
> I have found a bug on cvs guile. It has been reproduced by two users
> more too. When Guile crashed when it evaluates a wrong expression of
> the form:
>
> (set! 'symbol value)
>
> Guile should throw (and it do throw) a exeption, Nevertheless it
> crashed in the middle of backtrace log.
This won't be fixed in 1.8.2 because it needs some more thought.
Basically, this has to do with memoization of the generalized `set!'.
The `(quote symbol)' is being weirdly memoized:
$ guile -c "(set! 'x 2)"
ERROR: In procedure memoization:
ERROR: Bad variable (#@begin #-1#) in expression (set! (#@begin #-1#) 2).
As you can see, the memoized thing is a recursive list, hence the
endless recursion while unmemoizing the faulty expression to display the
backtrace.
The real fix may be to remove the `macroexp ()' function, as already
suggested by the comment in there. Thus I'll look at it after 1.8.2 is
out (if no one fixes it in the meantime ;-)).
Thanks,
Ludovic.
_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-guile
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Segment fault when Guile displays a backtrace
2007-07-02 2:13 xeos
2007-07-10 21:31 ` Ludovic Courtès
@ 2007-07-24 23:25 ` Ludovic Courtès
1 sibling, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2007-07-24 23:25 UTC (permalink / raw)
To: bug-guile
Hi,
xeos <xeos00@gmail.com> writes:
> I have found a bug on cvs guile. It has been reproduced by two users
> more too. When Guile crashed when it evaluates a wrong expression of
> the form:
>
> (set! 'symbol value)
"Luigi Semenzato" <luigi@semenzato.com> writes:
> $ guile
> guile> (version)
> "1.8.1"
> guile> (set! 'x #t)
>
> Backtrace:
> In standard input:
> 2: 0* Segmentation fault (core dumped)
I fixed it in CVS, so it will be in the next stable release.
Thanks,
Ludovic.
_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-guile
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-07-24 23:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-02 13:15 Segment fault when Guile displays a backtrace Marco Maggi
-- strict thread matches above, loose matches on Subject: below --
2007-07-02 2:13 xeos
2007-07-10 21:31 ` Ludovic Courtès
2007-07-24 23:25 ` Ludovic Courtès
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).