zubДа нет, программа не секретная, но к ней надо скачивать ещё несколько зависимостей. 
 https://github.com/VadimAnIsaev/GNU-MPFR-for-FreePascal
https://github.com/VadimAnIsaev/GNU-MPFR-for-FreePascalВ разделе examples, файл называется pi_bel_mpfr.pas.
В принципе я знаю, где ошибка - она не у меня, а у разработчиков библиотеки. Правда они сами её ошибкой не считают. 

 У них там есть специальная инструкция, как выделять память для нескольких ихних переменных, а потом как правильно их утилизировать, чтобы подобных персидских ковров не возникало. Мне просто интересно, как такую ошибку вообще, в принципе отлавливать...
Инструкция к генерации ошибки:
- в коде программы нужно удалить (или закомментировать) все буквосочетания ", mpfr_ptr(0)", откомпилировать и любоваться на эту ошибку.
zub писал(а):собрана с отладочной инфой? fpc собери с отладочной инфой
Нет, код без отладочной инфы. Кстати, вопрос - а отладочная инфа в моём коде поможет, если ошибка не в моём коде?
zub писал(а):..mp.. = мультипоточность?
Ну что же Вы меня на ночь глядя так пугаете?! Ни в коем случае! Один разъединственный поток! 
 Добавлено спустя 2 минуты 31 секунду:
Добавлено спустя 2 минуты 31 секунду:runewalsh писал(а):Ещё можно попробовать директиву $CHECKPOINTERS,
Спасибо, попробую...
Добавлено спустя 3 минуты 4 секунды:Vadim писал(а):В коде можно комментировать всё что угодно, ничего при выходе не меняется.
Нет, поправка. Если в коде закомментировать так:
- Код: Выделить всё
- mpfr_clears(@tmp_1, @tmp1, @tmp2, @tmp3, @tmp5{, @tmp7, @tmp9, mpfr_ptr(0)});
 //  mpfr_clears(@m1, @m2, @m3, @m4, @m5, @m6, @m7, @m8, mpfr_ptr(0));
 //  mpfr_clears(@t1, @t2, mpfr_ptr(0));
ошибка пропадает. Но ясности это не вносит...