|
Как вычислить ошибку allowed do nesting
|
|||
---|---|---|---|
#18+
Разбираюсь с чужим проектом, запускаю на компиляцию, выходит ошибка allowed do nesting... а в каком месте, в каком модуле не понятно, хотя галочки на перекомпиляции и Display Error, стоят...сообщение об ошибке выходит а не показывается где ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2013, 08:05 |
|
Как вычислить ошибку allowed do nesting
|
|||
---|---|---|---|
#18+
if .. endif for .. next ... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2013, 21:58 |
|
Как вычислить ошибку allowed do nesting
|
|||
---|---|---|---|
#18+
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 по умолчанию. Увеличивать его можно, пока хватит ресурсов компьютера. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2013, 19:34 |
|
Как вычислить ошибку allowed do nesting
|
|||
---|---|---|---|
#18+
q1w1e1, Причина может быть в рекурсии, в точ числе неявной ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2013, 20:29 |
|
Как вычислить ошибку allowed do nesting
|
|||
---|---|---|---|
#18+
XAndy, загадка в том, что Фоксовский компилятор вряд ли столь умён, что распознает последствия глубокой рекурсии. Следущий код скомпилировался без помех. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2013, 21:24 |
|
Как вычислить ошибку allowed do nesting
|
|||
---|---|---|---|
#18+
Rostislav D. Kudryashov, а когда поставил STACKSIZE = 300 в config.fpw, этот код исполнился без помех ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2013, 21:28 |
|
Как вычислить ошибку allowed do nesting
|
|||
---|---|---|---|
#18+
Rostislav D. KudryashovТак что сбой вылезает из работы самого компилятора. Проект оказался ему не по зубам.Ну это совсем уж примитивный пример. А если будет несколько процедур, и чтобы одна другую вызывала только при выполнении каких-либо условий, изменяемых в этих процедурах, что прикажете делать компилятору? Вывести сообщение "подозреваю, что тут при выполнении может возникнуть ошибка, так что компилировать, пожалуй, не буду"? Максимальная глубина рекурсии (и вообще работа рекурсивного кода) - головная боль программиста, никак не компилятора, имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 05:54 |
|
Как вычислить ошибку allowed do nesting
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 06:29 |
|
|
start [/forum/topic.php?fid=41&fpage=36&tid=1582799]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 146ms |
0 / 0 |