PySCIPOpt经常因分段错误(SIGSEGV)而中断



我想调试一个涉及pyscipopt和contraint处理程序的Python程序,但我经常遇到分段错误。

我像这样将一个 cppgdb 进程附加到主 Python 调试器。 我注意到在优化过程中,我有几个 gdb 线程正在运行,其中一个打印最佳解决方案,然后在异常时暂停:

python3: /home/avrech/scipoptsuite-6.0.2/scip/src/scip/debug.c:2029: SCIPcheckStage: Assertion `scip != NULL' failed.

另一个只是退出Segmentation fault (core dumped),没有其他信息。

我想了解为什么会发生这种情况,并找到避免此异常的解决方法。

我有一些假设,它与 SCIP 内部线程和共享内存有关,该内存由一个线程释放,然后由另一个线程访问。但是,我不知道如何评估它。 也许禁用多线程将有助于测试它?更重要的是无一例外地调试 SCIP?

总结一下我的问题: 1. 此异常/段错误的原因可能是什么? 2. 如何避免? 3. 如何禁用SCIP多线程(如果有(?

谢谢

不幸的是,我不知道问题 1 和 2 的答案,但关于问题 3:SCIP 不使用多线程,所以你的问题不在那里。

最新更新