I'm trying to debug an intermittent crash in firefox with gcc-6.1.
At least it is now quite hard to trigger.

Unfortunately, I used CFLAGS and CXXFLAGS of -O2 on everything
before firefox. But the crash is happening somewhere in Python (2.7.11)
code because I get the following in gdb when I run a backtrace:

#0  0x00007f2ede950200 in
js::jit::HandleException(js::jit::ResumeFromException*) (frame=...,
this=<optimized out>) at
/scratch/working/firefox-47.0/js/src/jit/JitFrames.cpp:359
#1  0x00007f2ede950200 in
js::jit::HandleException(js::jit::ResumeFromException*) (frame=...,
cx=0x7f2e99679c00, this=0x7ffff10ccd10) at
/scratch/working/firefox-47.0/js/src/jit/JitFrames.cpp:369
#2  0x00007f2ede950200 in
js::jit::HandleException(js::jit::ResumeFromException*)
(overrecursed=0x7ffff10ccc9f, rfe=0x7ffff10cd1e0, frame=...,
cx=0x7f2e99679c00)
    at /scratch/working/firefox-47.0/js/src/jit/JitFrames.cpp:416
#3  0x00007f2ede950200 in
js::jit::HandleException(js::jit::ResumeFromException*)
(rfe=0x7ffff10cd1e0) at
/scratch/working/firefox-47.0/js/src/jit/JitFrames.cpp:791
#4  0x00007f2ed3202162 in  ()
#5  0x00007ffff10cd2b8 in  ()
#6  0x00007ffff10cd1e0 in  ()
Python Exception <type 'exceptions.OverflowError'> long too big to
convert: 
#7  0xffffffffffffffff in  ()

That message #6 shows it is somewhere in Python code, and the lack
of details on items 4 to 7 made me think Python lacked debugging
info.

I suspect that the underlying Python code might have been miscompiled
Normally, I mistrust optimization greater than -O2, so I set CFLAGS
to -O2 (also CXXFLAGS, but Python2 seems to be all C).

Loading python2 itself in gdb I see it is NOT stripped, but my log
shows it added -O3 after my CFLAGS (which will therefore have taken
precedence), e.g.

gcc -pthread -c -fno-strict-aliasing -O2 -DNDEBUG -g -fwrapv -O3
-Wall -Wstrict-prototypes  -I. -IInclude -I./Include  -fPIC
-DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c

Is there any straightforward way to prevent it adding -O3 (apart
from changing every entry in the configure files) ?

And is there any easy way to debug the Python stuff itself ?
I've never managed to navigate Python dependencies, but if Python
itself is not stripped then there ought to be a way to at least get
some details about where items 4 to 7 in the bt are ?

ĸen, well out of my comfort zone.
-- 
I had to walk fifteen miles to school, barefoot in the snow.  Uphill both ways.
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to