Sunday, August 21, 2016

Back to the Linux or how I debugged silent crash

Just got tired from Mac and decided to move to my old Gentoo Linux. After recompiling world (oh yeah, all from sources) I stuck with SIGSEGV with plot command in Octave (Matlab like math package).

When I tried to plot anything it crashed with SIGSEGV without any obvious reason. So I got to go deeper to fix it. Gentoo supports nice debug options all that one needs is just to enable them
https://wiki.gentoo.org/wiki/Debugging

After that simple
# sudo ulimit -c 99999999
# octave
octave:1> plot(1)

then crash with core in the current folder. Now one need to unwind the stack
# gdb /usr/lib/debug/usr/bin/octave-cli-3.8.2.debug core
(gdb) bt
#0  fl_create_gl_context (g=0x0) at Fl_Gl_Choice.H:102
#1  Fl_Gl_Window::make_current (this=0xc12430) at Fl_Gl_Window.cxx:168
#2  0x00007fc1a5706447 in plot_window::show_canvas (this=0xc11bb0,
    this=0xc11bb0) at dldfcn/__init_fltk__.cc:935
....
#88 0x00007fc1b715a620 in __libc_start_main () from /lib64/libc.so.6
#89 0x0000000000400979 in _start ()

So, I didnt recompile nvidia drivers or my opengl config is bad. I had problems with opengl config, repoint it with eselect opengl and run X11 again.

Problem has solved