emacs-devel
[Top][All Lists]
Advanced

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

Re: Assertion violation in pdumper.c


From: Pip Cet
Subject: Re: Assertion violation in pdumper.c
Date: Mon, 17 Aug 2020 16:28:21 +0000

On Mon, Aug 17, 2020 at 2:08 PM Eli Zaretskii <eliz@gnu.org> wrote:
> Since the recent changes in pdumper.c, Emacs started hitting an
> assertion violation and aborting during the build on one of my
> systems, see the backtrace below.  I need the following to work around
> the abort:
>
> diff --git a/src/pdumper.c b/src/pdumper.c
> index 2d1b19283c..217ffa6783 100644
> --- a/src/pdumper.c
> +++ b/src/pdumper.c
> @@ -4999,7 +4999,7 @@ pdumper_find_object_type_impl (const void *obj)
>    if (offset % DUMP_ALIGNMENT != 0)
>      return PDUMPER_NO_OBJECT;
>    ptrdiff_t bitno = offset / DUMP_ALIGNMENT;
> -  if (offset < dump_private.header.cold_start
> +  if (offset < dump_private.header.discardable_start
>        && !dump_bitset_bit_set_p (&dump_private.last_mark_bits, bitno))
>      return PDUMPER_NO_OBJECT;
>    const struct dump_reloc *reloc =

That looks like the correct fix to me. I'd mistakenly thought cold
objects preceded discardable ones.

> My hypothesis is that we are trying to call dump_bitset_bit_set_p on a
> pointer that shouldn't be tested like that, because the number of
> words we reserve for a bitset is only enough for objects stored before
> discardable_start.

I agree.



reply via email to

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