[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pvm_execute_or_initialize SEGV with reproducer
From: |
Jose E. Marchesi |
Subject: |
Re: pvm_execute_or_initialize SEGV with reproducer |
Date: |
Thu, 22 Apr 2021 21:03:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Hi David.
Thanks for reporting.
> The same also occurs with none of the --disables, they serve to simplify
> the backtrace.
>
> (poke) .file ~/playpen/btf/poke-fault/poke-fault.o
> (poke) load elf
> (poke) load "btf-dump.pk" # note, this also loads btf.pk
> (poke) var elf = Elf64_File @ 0#B
> (poke) var shdr = elf.get_sections_by_name (".BTF") [0]
> (poke) var btf = BTF_Section @ shdr.sh_offset
I took a quick look, and it seems that the exceptions stack is being
overflown. This is probably a code generator bug: somehow we are not
executing enough `pope' instructions for all the `pushe'.
As far as I can see, we are starting to "leak" elements in the
exceptions stack in:
(poke) var btf = BTF_Section @ shdr.sh_offset
As soon as I have a little time I will look at all the places where the
compiler is generating pushe/pope pairs and see what is going on..
unless someone beats me to it :)