forrt1: серьезный (170): Исключение программы - переполнение стека

и заранее спасибо за любую помощь!

Я скомпилировал программу (которую я не писал), и она отлично работает на Mac, но когда я пытаюсь запустить программу в Windows, я получаю следующее сообщение об ошибке вскоре после начала выполнения программы:

forrt1: серьезный (170): Исключение программы - переполнение стека

Я не пользователь ifort или Fortran, но пытаюсь скомпилировать программу для работы.

Я сделал ifort --version и использую Intel Visual Fortran Compiler XE с версией 12.0.0.104. Я работаю над этой проблемой уже несколько дней, и я пытался возиться с флагами в Makefile, но безуспешно.

Если я могу предоставить любую дополнительную информацию, я постараюсь сделать все возможное. Еще раз спасибо!


person user869525    schedule 29.07.2011    source источник
comment
мы не можем ответить на ваш вопрос, не видя кода. Я предполагаю, что размер стека компилятора Windows по умолчанию меньше, чем на другой платформе. Вероятно, имеют очень большие переменные стека. имеют очень большие переменные стека.   -  person David Heffernan    schedule 29.07.2011


Ответы (2)


Попробуйте добавить следующие флаги во время компиляции, чтобы распечатать больше информации:

/traceback /check:all

check выполнит проверку ошибок во время выполнения, traceback скажет компилятору генерировать дополнительную информацию, когда во время выполнения возникает серьезная ошибка.

person EMiller    schedule 29.07.2011

При компиляции программы попробуйте параметр /heap-arrays, чтобы компилятор размещал массивы в куче, а не в стеке. В противном случае попробуйте увеличить стек, доступный для исполняемого файла.

person M. S. B.    schedule 29.07.2011
comment
Кроме того, используйте /heap-arrays:0, чтобы убедиться, что ВСЕ находится в куче. - person bdforbes; 30.07.2011