Solaris gcc 4.9.0上的Eigen SIGSEGV,带有调试标志

时间:2016-11-04 15:15:45

标签: c++ solaris eigen

我正在为我的程序编译单元测试(通过GoogleTests),每当我尝试使用Eigen 3.2.x在Solaris 11.3上以DEBUG模式编译时,我在运行程序时遇到此SIGSEGV错误然后进行核心转储在gdb

  

(gdb)r

     

...

     

[使用libthread_db启用的线程调试] [新线程1(LWP 1)]

     

编程接收信号SIGSEGV,分段故障。 [切换到   线程1(LWP 1)] 0x0830fc30 in   Eigen :: internal :: ploadu(       from = 0xfeffe5a0)at ./eigen/Eigen/src/Core/arch/SSE/Complex.h:307 307 {   EIGEN_DEBUG_UNALIGNED_LOAD返回Packet1cd(ploadu((const   双*)从)); }

     

(GDB)

from中打印gdb时,这就是我所得到的:

  

gdb p from:(const std :: complex< double> *)0xfeffe5a0

此SIGSEGV仅适用于Solaris,且仅在使用-Og进行编译时才适用。我已在多个其他操作系统上编译和测试它,并且没有任何问题。这是一个已知的问题?它看起来与某些SSE优化和对齐有关,但是我无法确定究竟发生了什么。

0 个答案:

没有答案