powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как вычислить ошибку allowed do nesting
8 сообщений из 8, страница 1 из 1
Как вычислить ошибку allowed do nesting
    #38486875
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбираюсь с чужим проектом, запускаю на компиляцию, выходит ошибка allowed do nesting...
а в каком месте, в каком модуле не понятно, хотя галочки на перекомпиляции и Display Error, стоят...сообщение об ошибке выходит а не показывается где
...
Рейтинг: 0 / 0
Как вычислить ошибку allowed do nesting
    #38488076
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if .. endif
for .. next
...
...
Рейтинг: 0 / 0
Как вычислить ошибку allowed do nesting
    #38501513
Rostislav D. Kudryashov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1, ключевым словом в сообщении "Allowed DO nesting..." является DO. Возможно, слишком большая глубина вызовов подпрограмм через DO.
Поиск в фоксовском хэлпе на эту тему даёт, среди прочего:
The number of nesting levels has been exceeded. For more information, see Visual FoxPro System Capacities.
To exceed the current limit of nesting levels, change the number of nesting levels by including the STACKSIZE setting and the new limit of nesting levels in a configuration file to use when Visual FoxPro starts up. For more information, see Special Terms for Configuration Files.

STACKSIZE = 128 по умолчанию. Увеличивать его можно, пока хватит ресурсов компьютера.
...
Рейтинг: 0 / 0
Как вычислить ошибку allowed do nesting
    #38501542
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
q1w1e1,

Причина может быть в рекурсии, в точ числе неявной
...
Рейтинг: 0 / 0
Как вычислить ошибку allowed do nesting
    #38501569
Rostislav D. Kudryashov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XAndy, загадка в том, что Фоксовский компилятор вряд ли столь умён, что распознает последствия глубокой рекурсии. Следущий код скомпилировался без помех.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
PUBLIC m.Count_gn
m.Count_gn = 0
DO Recurs
? 'OK', m.Count_gn

PROCEDURE Recurs
  DO WHILE m.Count_gn < 255
    m.Count_gn = m.Count_gn + 1
    DO Recurs
  ENDDO
ENDPROC && Recurs
Но выполнение дало сбой "Allowed DO nesting...". Так что сбой вылезает из работы самого компилятора. Проект оказался ему не по зубам. Придётся этот проект разбирать руками на составляющие.
...
Рейтинг: 0 / 0
Как вычислить ошибку allowed do nesting
    #38501570
Rostislav D. Kudryashov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rostislav D. Kudryashov, а когда поставил STACKSIZE = 300 в config.fpw, этот код исполнился без помех
...
Рейтинг: 0 / 0
Как вычислить ошибку allowed do nesting
    #38501725
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rostislav D. KudryashovТак что сбой вылезает из работы самого компилятора. Проект оказался ему не по зубам.Ну это совсем уж примитивный пример. А если будет несколько процедур, и чтобы одна другую вызывала только при выполнении каких-либо условий, изменяемых в этих процедурах, что прикажете делать компилятору? Вывести сообщение "подозреваю, что тут при выполнении может возникнуть ошибка, так что компилировать, пожалуй, не буду"? Максимальная глубина рекурсии (и вообще работа рекурсивного кода) - головная боль программиста, никак не компилятора, имхо.
...
Рейтинг: 0 / 0
Как вычислить ошибку allowed do nesting
    #38501731
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rostislav D. KudryashovRostislav D. Kudryashov, а когда поставил STACKSIZE = 300 в config.fpw, этот код исполнился без помех
Вполне объяснимо если в хэлп заглянуть
helpSTACKSIZE = nValue
Specifies the number of nesting levels from 32 to 64,000 for operations such as the DO command.

Note
You can change the nesting level only during Visual FoxPro startup.

Default: 128
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как вычислить ошибку allowed do nesting
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]