[Top][All Lists]

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

[Octave-bug-tracker] [bug #30685] Segmentation fault in ./run-octave [si

From: Keith Godfrey
Subject: [Octave-bug-tracker] [bug #30685] Segmentation fault in ./run-octave [sigemptyset() in liboctinterp-3.3.52.so]
Date: Tue, 15 Mar 2011 19:37:47 +0000
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20110302 Iceweasel/3.5.16 (like Firefox/3.5.16)

Follow-up Comment #33, bug #30685 (project octave):

A discussion w/ the kind folks at gnulib provided information, but no
resolution. They pointed out that gnulib/sigprocmask.c is not compiled
(grep-ing the make output confirmed this, as did an '#error' statement
inserted there before a fresh build). It seems to be a link error.

The apparent resolution (hack) to get octave to compile/run is to simply
remove all instances of "gnulib::" from sighandlers.cc.

Summary of discussion w/ gnulib below. It starts with an assembly trace of
where the sigfault occurred.


> Program received signal SIGSEGV, Segmentation fault.
> 0x00002b630905ede8 in sigemptyset ()
>     from 
> /global/home/keith/software/octave-3.4.0/src/.libs/liboctinterp-3.4.0.so
> 2: x/10i $pc
> 0x2b630905ede8 <sigemptyset>:    callq  0x2b636c0ef3da
> 0x2b630905eded <sigemptyset+5>:    sub    (%rax),%eax
> 0x2b630905edef <sigemptyset+7>:    add    %dh,%al
> 0x2b630905edf1 <sigaction+1>:    in     (%dx),%eax

OK, so here you have an 8-byte area that defines a function 'sigemptyset' and
whose code starts with a 'call' instruction? That must be the PLT (Procedure
Linkage Table, [1]) in a state before the first 'sigemptyset' call.

Where does the 0x2b636c0ef3da point to? Look at the /proc/<pid>/maps file of
your process.

When you have a SIGSEGV in the PLT, there are two possible causes:
  - Either a problem with the shared libraries (maybe caused by some linker
options, maybe by a linker bug),
  - Or you have general memory corruption that happens to hit the PLT.
    For detecting this case, please run your application under valgrind.

In either case, it's unrelated to gnulib. Please redirect followups to Octave
list again, and omit bug-gnulib.

[1] http://vxheavens.com/lib/vsc06.html

<< KG NOTE: the call address in sigemptyset is not in a memory range specified
in proc/<pid>/maps. This address sits after the last shared object. The
address of sigemptyset itself points to liboctinterp-3.4.0.so, so I should be
looking at the correct map >>


Reply to this item at:


  Message sent via/by Savannah

reply via email to

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