【发布时间】:2020-01-08 21:30:43
【问题描述】:
我想调试一个涉及 pyscipopt 和约束处理程序的 Python 程序,但我经常遇到分段错误。
我将一个 cppgdb 进程附加到主 Python 调试器,例如 this。 我注意到在优化过程中,我有几个 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多线程如果有,如何关闭?
谢谢
【问题讨论】: