tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: vlc-2.2.1 crash in module loader
Date: Sat, 4 Jul 2015 16:00:26 +0200
From: "Ian D. Leroux" <idleroux%fastmail.fm@localhost>
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f7fcb8eab31 in ?? ()
(gdb) bt
#0 0x00007f7fcb8eab31 in ?? ()
#1 0x00007f7ff5ce8c59 in __cxa_finalize () from /usr/lib/libc.so.12
That looks vaguely like a bad destructor or finalizer, but I'm not sure
how to proceed further. I have three questions at this stage:
1- Does anyone with more C++ experience have any energy to help debug
this?
2- In particular, any hints about getting a more informative
backtrace? I'm clearly doing something wrong. Note that file
indicates that the vlc binary is not stripped.
This usually suggests that someone tried to use atexit in a shared
library, which doesn't work because the shared library may be unloaded
by the time the process tries to call the atexit handlers.
The usual fix is to use __attribute__((__destructor__)) instead. See,
e.g., graphics/MesaLib/patches/patch-src_glsl_ralloc.c. If you're not
sure which atexit handler, you could run it in a debugger, set a
breakpoint on atexit, and check the stack trace.
If that doesn't work, you might install the debug.tgz set (or rebuild
libc with DBG=-g if you're on pre-7) to get debugging symbols for
libc. Last time I attacked an issue like this (which turned out to be
an atexit abuse) I used lots of debugging printfs in rtld.
Home |
Main Index |
Thread Index |
Old Index