22-12-2005 16:18 Программистское
Перегоняю код из-под Линукса под VC++ 6.0
В одном месте оно мне заявляет что дескать stack overflow (под Линуксом там все работает).
Происходит эта радость при входе в некую функцию. VC++ видимо запускает свою собственную местную ассемблерную шнягу под названием chkstk.asm, которая считает стэк и радостно сообщает что перебор понимашь. Хотя по-моему нет никакого перебора.

update:
/Gs не помогает
/Gs999999999 дает Access Violation еще раньше.
Ни-че-го не понимаю

update2:
убрал флаг /Gz. Вроде помогло... Хотя оно все равно дальше падает

Как посмотреть текущий размер стэка?
Комментарии:
22-12-2005 20:26
Хорошо информированный оптимист
э... а ты тут?
и тебе тут заняться больше нечем?
23-12-2005 01:08
Камрад
Ага Вообще за это деньгу платят. Вернее будут платить когда я наконец код под винду перегоню или ЛИНУКС ПОСТАВЛЮ.
Еще в игрушки играюсь...
23-12-2005 11:21
Камрад с блокнотиком
Одно из двух, или у тебя там слишком глубокая рекурсия, или стрельба по памяти aka разыменование невалидных указателей. Или ещё могут быть слишком большие массивы в локальных переменных.

В общем, код в студию.

Да, а гигабайт стека тебе не дадут IMHO. Да и не нужно столько для разумных задач.
01-01-2006 15:52
Камрад
Centaur
Код в студию не выйдет, там много, и где собственно пропадает стэк -- не ясно.
Рекурсии нет. Вот насчет стрельбы по памяти и больших массивов не уверен, искал их, но не видел.
Закрыть