emacs-devel
[Top][All Lists]
Advanced

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

Re: valgrind emacs


From: Stefan Monnier
Subject: Re: valgrind emacs
Date: Mon, 24 Mar 2008 14:50:31 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

> ==3816== Conditional jump or move depends on uninitialised value(s)
> ==3816==    at 0x4D68E5: Fgarbage_collect (alloc.c:5004)
> ==3816==    by 0x4EB922: Feval (eval.c:2248)
> ==3816==    by 0x5047BB: readevalloop (lread.c:1791)
> ==3816==    by 0x50614D: Fload (lread.c:1255)
> ==3816==    by 0x4EBB5E: Feval (eval.c:2370)
> ==3816==    by 0x5047BB: readevalloop (lread.c:1791)
> ==3816==    by 0x50614D: Fload (lread.c:1255)
> ==3816==    by 0x4EBB5E: Feval (eval.c:2370)
> ==3816==    by 0x4EAC36: internal_condition_case (eval.c:1494)
> ==3816==    by 0x4856A9: top_level_1 (keyboard.c:1387)
> ==3816==    by 0x4EAD26: internal_catch (eval.c:1230)
> ==3816==    by 0x48616E: command_loop (keyboard.c:1342)

No idea what this is about.  Might be an actual bug.

> ==3816== Conditional jump or move depends on uninitialised value(s)
> ==3816==    at 0x4D2A17: mem_find (alloc.c:3510)
> ==3816==    by 0x4D36F4: mark_maybe_object (alloc.c:4108)
> ==3816==    by 0x4D392D: mark_stack (alloc.c:4272)
> ==3816==    by 0x4D6A55: Fgarbage_collect (alloc.c:5092)
> ==3816==    by 0x4EB922: Feval (eval.c:2248)
> ==3816==    by 0x5047BB: readevalloop (lread.c:1791)
> ==3816==    by 0x50614D: Fload (lread.c:1255)
> ==3816==    by 0x4EBB5E: Feval (eval.c:2370)
> ==3816==    by 0x5047BB: readevalloop (lread.c:1791)
> ==3816==    by 0x50614D: Fload (lread.c:1255)
> ==3816==    by 0x4EBB5E: Feval (eval.c:2370)
> ==3816==    by 0x4EAC36: internal_condition_case (eval.c:1494)

Most likely a non-issue: the conservative stack-scanning will look at
all slots in the stack, and of course some of those may not have
been initialized.  But the arbitrary values read off the stack are
sanity-checked so that they're ignored unless they do correspond to
valid Lisp pointers.  Maybe they're not really Lisp pointers, so the
behavior may be affected by the uninitialized value, but the only effect
it should have is to prevent garbage collection of some Lisp objects,
i.e. increase the memory footprint.


        Stefan




reply via email to

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