octave-maintainers
[Top][All Lists]
Advanced

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

Re: Segmentation Fault with Octave MXE under Windows


From: Daniel J Sebald
Subject: Re: Segmentation Fault with Octave MXE under Windows
Date: Wed, 28 May 2014 17:46:34 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111108 Fedora/3.1.16-1.fc14 Thunderbird/3.1.16

On 05/28/2014 04:45 PM, ijourneaux wrote:

Jordi
A couple of stupid questions
1. What changes do I need to make to the makefile or configure script to
turn off optimization. I chose to edit the configure file to remove the -O2
cmd line parameters for GCC but not sure if that is the ideal location.
2. I am assuming that if the change is made, that Octave-mxe needs to be
rebuilt from scratch. I have tried using make nsis-installer --always-make
but that fails building build-xz.
Still learning Linux  (Debian)

There are all sorts of options, but in any case it seems more a way to avoid the problem than track down the problem.

Before saying more, could you pinpoint the occurrence of the error more? Rather than just running "test imread", please open the imread.m file somehow and copy--one at a time--the lines of the test code at the end of the file into Octave. Pinpoint which line is causing the error. Most likely it is the imread(), but one never knows.

Going back to your printout of the back trace, it seems to me that the #0, #1 are the place where the problem occurred, i.e., most recent, and the #18 and #19 are the system level launch of the thread (Rtl probably means "run time library").

#0  0x68a807c0 in liboctinterp-2!_ZN5ArrayIdED2Ev ()
   from C:\Octave\Octave-3.8.1\bin\liboctinterp-2.dll
#1  0x689e19fc in liboctinterp-2!_ZN13octave_matrixD0Ev ()
   from C:\Octave\Octave-3.8.1\bin\liboctinterp-2.dll
[snip]
#18 0x76e137be in ntdll!RtlInitializeExceptionChain ()
   from C:\Windows\system32\ntdll.dll
#19 0x00000000 in ?? ()

The additional information you provided about #0 is more detail about what exactly went wrong:

#0  Array<double>::~Array (this=0x1ff22200, __in_chrg=<optimized out>)
    at
/mxe-octave/tmp-stable-octave/octave-3.8.1/liboctave/array/Array.h:243
243     in
/mxe-octave/tmp-stable-octave/octave-3.8.1/liboctave/array/Array.h

Since it is referring to a header file, my guess is that something about an in-line function is failing. Check what your line 243 is in Array.h. Here, it looks like this destructor:

  virtual ~Array (void)
  {
    if (--rep->count == 0)
      delete rep;
  }

but notice that from the debugger's viewpoint it looks not like a void, but a function with two inputs "this" and "__in_chrg". Those must be some kind of intermediate code resulting from a beginning stage of C++ compilation.

If I recall correctly the topic of reference counting came up recently, so I'm wondering if atomic reference counting is active by default. Could you please look in your config.h file for a line similar to this:

/* Define to 1 to use atomic operations for reference counting. */
/* #undef USE_ATOMIC_REFCOUNT */

and report back? Or somehow figure out from the contents of your config.log file what exactly the value of USE_ATOMIC_REFCOUNT is? If atomic reference counting is on, turn it off--or vice versa.

Thanks,

Dan






--
View this message in context: 
http://octave.1599824.n4.nabble.com/Segmentation-Fault-with-Octave-MXE-under-Windows-tp4664305p4664359.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.



--

Dan Sebald
email: daniel(DOT)sebald(AT)ieee(DOT)org
URL: http://www(DOT)dansebald(DOT)com



reply via email to

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