[pypy-dev] Segmentation fault at rpyvmprof_f_pypy_rrr ()

Armin Rigo arigo at tunes.org
Tue Sep 8 08:33:25 CEST 2015


Hi Yicong,

On Tue, Sep 8, 2015 at 5:07 AM, Yicong Huang <hengha.mao at gmail.com> wrote:
>    0x00007f27ff816b6a <+42>:    66 48 8d 3d 8e b3 2f 01 data16 lea
> 0x12fb38e(%rip),%rdi        # 0x7f2800b11f00
>    0x00007f27ff816b72 <+50>:    66 66 48 e8 6e ec cf ff data16 data16 callq
> 0x7f27ff5157e8 <__tls_get_addr at plt>
>    0x00007f27ff816b7e <+62>:    48 8b 68 30     mov    0x30(%rax),%rbp
> => 0x00007f27ff816b82 <+66>:    4c 8b 75 48     mov    0x48(%rbp),%r14

The first two instructions are reading the TLS (thread-local storage);
then the 3rd is mostly probably reading the current executioncontext;
then the 4th is trying to read something out of the
executioncontext---which is NULL at this point.

I may be wrong, but I think that this crash can only occur in these
two cases: if rpython_startup_code() was not called yet (which should
not be the case here), or if the crash occurs in a different thread
and pypy_thread_attach() was not called yet in this thread.

You should be able to check if the program was running multiple
threads by doing "info threads" in gdb at the point of the crash.  If
it is, did you call pypy_init_threads() once from the main thread and
then pypy_thread_attach() in that other thread?


A bientôt,

Armin.


More information about the pypy-dev mailing list