Apple Silicon平台使用Eigen库触发SIGSEGV段错误问题咨询
Eigen在Apple Silicon平台Clang编译器下触发SIGSEGV段错误
我在项目中使用Eigen库,该库在Windows x86、Ubuntu x86、Ubuntu ARM等多架构及系统下运行正常,但在Apple Silicon平台搭配Clang编译器时,触发了SIGSEGV(段错误)信号。
调试信息
- 通过AddressSanitizer报错显示:访问零页地址导致读内存错误,调用栈指向Eigen内部的赋值循环逻辑,最终定位到代码第479行
Eigen::VectorXd relCoordsSubset = relCoords(nIndices); - 使用lldb调试显示为栈内存越界使用
相关代码片段
Eigen::ArrayXi nIndices = this->msdMeasuredIndices[msdIdx]; Eigen::VectorXd relCoords = this->getCoordinates(); assert(nIndices.minCoeff() >= 0 && nIndices.maxCoeff() < relCoords.size()); Eigen::VectorXd relCoordsSubset = relCoords(nIndices); // <- line 479
系统信息
- Apple M3 Pro,12核
- Eigen 3.4.0
- 编译器:Homebrew clang 18.1.8 或 AppleClang 15.0.0.15000309
疑问
请问这是已知Bug吗?是否存在我未注意到的编译器兼容性问题?后续我会补充最小复现示例。
内容的提问来源于stack exchange,提问作者BernhardWebstudio
相关产品推荐
相关产品推荐

