Воспроизвести проблему на своем компьютере у меня не удалось, но где она возникла очень хорошо видно - функция runPrimer3() вернула nullptr. Я поисследовал начинку Primer3 и увидел, что такое могло произойти, в первую очередь, если не получилось выделить память. Почему тако получилось - могу только гадать. Вставил CHECK на этот случай.
Так же, по логу крэша было понятно, какую последовательность использовал пользователь
и она очень длинная. У нас в диалоге Primer3 встроен определенный механизм, который предупреждает пользователя о проблеме с какими-то входными параметрами (слишком длинная последовательность - это как раз одна из таких проблем), однако, все равно позволяет запустить расчет. В некоторых случаях этого не стоит позволять делать, т.к. может либо потенциально произойти какая-нибудь проблема (как в данном случае, из-за слишком длинной последовательности), либо априори уже известно, что такая конфигурация данных не позволит выполниться расчету до конца. Я расширил механизм проверки и добавил в него понятие критических ошибок которые нужно обязательно править.
Воспроизвести проблему на своем компьютере у меня не удалось, но где она возникла очень хорошо видно - функция
runPrimer3()
вернулаnullptr
. Я поисследовал начинку Primer3 и увидел, что такое могло произойти, в первую очередь, если не получилось выделить память. Почему тако получилось - могу только гадать. ВставилCHECK
на этот случай.Так же, по логу крэша было понятно, какую последовательность использовал пользователь и она очень длинная. У нас в диалоге Primer3 встроен определенный механизм, который предупреждает пользователя о проблеме с какими-то входными параметрами (слишком длинная последовательность - это как раз одна из таких проблем), однако, все равно позволяет запустить расчет. В некоторых случаях этого не стоит позволять делать, т.к. может либо потенциально произойти какая-нибудь проблема (как в данном случае, из-за слишком длинной последовательности), либо априори уже известно, что такая конфигурация данных не позволит выполниться расчету до конца. Я расширил механизм проверки и добавил в него понятие критических ошибок которые нужно обязательно править.