Hi Yicong,

On Tue, Sep 8, 2015 at 5:07 AM, Yicong Huang <hengha....@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@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.
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to