Re: [eigen] segfault in adjoint unit test

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Oh sorry man - of course as always it was the devel branch and SSE
enabled. Sorry again for being incomplete!

On Sat, Aug 29, 2009 at 5:49 PM, Benoit Jacob<jacob.benoit.1@xxxxxxxxx> wrote:
> I vaguely infer from your backtrace that it must be the devel branch
> and SSE enabled, so i tried here with GCC 4.4.1 and -O2 -finline but i
> can't reproduce, sorry.
>
> Benoit
>
> 2009/8/29 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>> As I mentioned before, the error does not occur as soon as O2 is
>> disabled since that disables inlining as well.
>>
>> Here is the callstack - unfortunately not very useful due to the inlining.
>>
>> test_adjoint.exe!Eigen::MatrixBase<Eigen::GeneralProduct<Eigen::Transpose<Eigen::Matrix<float,4,4,0,4,4>>,Eigen::Matrix<float,4,1,0,4,1>,2>
>>>::dot<Eigen::Matrix<float,4,1,0,4,1> >(const
>> Eigen::MatrixBase<Eigen::Matrix<float,4,1,0,4,1> > & other={...})
>> Line 272 + 0xdc bytes   C++
>> test_adjoint.exe!adjoint<Eigen::Matrix<float,4,4,0,4,4> >(const
>> Eigen::Matrix<float,4,4,0,4,4> & m={...})  Line 84 + 0x61 bytes C++
>> test_adjoint.exe!test_adjoint()  Line 120 + 0x1ca bytes C++
>> test_adjoint.exe!main(int argc=0, char * * argv=0x0000000000000000)
>> Line 329        C++
>> test_adjoint.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes     C
>>
>> I will try to find out more  soon.
>>
>> - Hauke
>>
>> On Sat, Aug 29, 2009 at 5:22 PM, Benoit Jacob<jacob.benoit.1@xxxxxxxxx> wrote:
>>> 2.0 or devel? SSE enabled or not? Just so I can try to reproduce...
>>>
>>> can you get a backtrace? perhaps disable assertion checking if that
>>> helps getting a better backtrace, and make sure the test is compiled
>>> without -O2...
>>>
>>> Benoit
>>>
>>> 2009/8/29 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>>>> Hi,
>>>>
>>>> I noticed a segfault in the adjoint unit test. It disappears when I change
>>>>
>>>> VERIFY(ei_isApprox(v1.dot(square * v2), square.adjoint() * v1.dot(v2),
>>>> largerEps));
>>>>
>>>> to
>>>>
>>>> VERIFY(ei_isApprox(v1.dot(square * v2), (square.adjoint() *
>>>> v1).eval().dot(v2), largerEps));
>>>>
>>>> and it also does not appear when inlining is disabled. I don't know
>>>> how to nail down the error. I guess it's some nestByValue related
>>>> issue...
>>>>
>>>> Regards,
>>>> Hauke
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/