emacs-devel
[Top][All Lists]
Advanced

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

Re: recent master core dumps building on FreeBSD i386


From: Paul Eggert
Subject: Re: recent master core dumps building on FreeBSD i386
Date: Thu, 18 Oct 2018 10:53:20 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

On 10/18/18 9:02 AM, Eli Zaretskii wrote:
Can you please repeat this experiment, and then, when it crashes, do
this:

   (gdb) source ./.gdbinit
   (gdb) frame 2
   (gdb) p/x a
   (gdb) xtype

and show us the results?

Also, please try these GDB commands when debugging ./temacs:

b syms_of_threads
r -Q
p &main_thread
disas syms_of_threads
p &Vmain_thread

I'm attaching the output of these commands on Fedora 28 x86-64 compiled with 'gcc -m32 -march=native -g3 -O2' (AMD Phenom II X4 910e). Evidently your compiler (clang?) is not inlining make_lisp_ptr, but it's still useful to know what it's up to. I see that GCC optimizes away not only the call to make_lisp_ptr, but also the runtime check 'TAGGEDP (a, type) && XUNTAG (a, type, char) == ptr', I guess because GCC knows that main_thread is properly aligned so TAGGEDP must succeed here. clang isn't smart enough to do this sort of optimization (at least on Fedora) so if you're using clang that might partly explain the problem.

Also, please investigate what the macro GCALIGNED_STRUCT expands to. You can use 'gcc -E' to do that.

Attachment: gdb.txt
Description: Text document


reply via email to

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