Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как избавиться от ошибки FRAMESTACK / 25 сообщений из 35, страница 1 из 2
12.03.2012, 16:38
    #37701057
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
Есть программа, упрощенный вариант выглядит следующим образом:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
BODY	
	d DISPLAY
 	d READCHOICE
 	G PROCESSCHOICE
        q
PROCESSCHOICE
         //делаем что-то
         h 5 //пауза 5 секунд
         G BODY        


Все работает отлично, данные в терминале обновляются как нужно, но через долгое время работы выскакивает ошибка FRAMESTACK. Описание ошибки: ДокументацияThe routine has too many nested calls to Do, For, Xecute, New, or user-written functions.. Что сделать, чтобы не получать эту ошибку?
...
Рейтинг: 0 / 0
12.03.2012, 16:51
    #37701095
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
заменить "Go туды , Go обратно" на Xecute и Quit.
...
Рейтинг: 0 / 0
12.03.2012, 16:58
    #37701119
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
4d_monsterзаменить "Go туды , Go обратно" на Xecute и Quit.
так Xecute тоже в списке причин ошибки FRAMESTACK, даже если заменить, имеется ввиду нечто типа
Код: c#
1.
Xecute "G BODY"

или что?
...
Рейтинг: 0 / 0
12.03.2012, 17:26
    #37701188
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
А почему бы не использовать просто бесконечные циклы, с вызовом по Do нужного выполнения

к ошибке Framestack, приведут любые команды которые делают вызов но не возвращаются обратно,
это бесконечный GOTO, или слишком сильно вложенная рекурсия (когда он вроде и должен бы вернутся но не успевает)
...
Рейтинг: 0 / 0
12.03.2012, 17:30
    #37701198
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
DAiMorА почему бы не использовать просто бесконечные циклы, с вызовом по Do нужного выполнения

к ошибке Framestack, приведут любые команды которые делают вызов но не возвращаются обратно,
это бесконечный GOTO, или слишком сильно вложенная рекурсия (когда он вроде и должен бы вернутся но не успевает)
да, с циклом интересная идея, не подумал. Спасибо, попробую!
...
Рейтинг: 0 / 0
12.03.2012, 18:07
    #37701285
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
2 AndrewQwer
XECUTE - это я перепутал

Вместе с Quit должно работать просто Do
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
BODY	
	d DISPLAY
 	d READCHOICE
 	 d  PROCESSCHOICE
        q
PROCESSCHOICE
         //делаем что-то
         h 5 //пауза 5 секунд
          Q 
 
...
Рейтинг: 0 / 0
12.03.2012, 18:10
    #37701293
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
Код: c#
1.
2.
PROCESSCHOICE
         //делаем что-то


и внутри этого "что-то" стоит команда new ?
...
Рейтинг: 0 / 0
12.03.2012, 18:17
    #37701321
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
Это я к тому, что в каше с new есть сособенности, воспроизводится просто:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
USER>x "f  n"
 
f  n
   ^
<MAXSCOPE>
USER>x "f  n a"
 
f  n a
   ^
<FRAMESTACK>


если у вас стоит new в комментированном коде
Код: c#
1.
//делаем что-то


то тут либо FRAMESTACK, либо MAXSCOPE, смотря что наступит раньше.
...
Рейтинг: 0 / 0
13.03.2012, 09:39
    #37701952
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
4d_monster2 AndrewQwer
XECUTE - это я перепутал

Вместе с Quit должно работать просто Do
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
BODY	
	d DISPLAY
 	d READCHOICE
 	 d  PROCESSCHOICE
        q
PROCESSCHOICE
         //делаем что-то
         h 5 //пауза 5 секунд
          Q 
 

Не пойдет :) Нужно чтобы внутренность BODY повторялась :)
...
Рейтинг: 0 / 0
13.03.2012, 09:40
    #37701953
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
ну я
Код: c#
1.
2.
PROCESSCHOICE
         //делаем что-то


и внутри этого "что-то" стоит команда new ?
нет, не стоит
...
Рейтинг: 0 / 0
13.03.2012, 09:58
    #37701989
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
AndrewQwerНужно чтобы внутренность BODY повторялась :)
Как уже писалось ранее...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
BODY	
	d DISPLAY
 	d READCHOICE
 	f  d PROCESSCHOICE q:exit
	q
PROCESSCHOICE
	//делаем что-то
	//если хватит это делать - s exit=1
	h 5 //пауза 5 секунд
	Q
...
Рейтинг: 0 / 0
13.03.2012, 10:47
    #37702098
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
krvsaAndrewQwerНужно чтобы внутренность BODY повторялась :)
Как уже писалось ранее...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
BODY	
	d DISPLAY
 	d READCHOICE
 	f  d PROCESSCHOICE q:exit
	q
PROCESSCHOICE
	//делаем что-то
	//если хватит это делать - s exit=1
	h 5 //пауза 5 секунд
	Q


да, нечто подобное и сделал! осталось подождать
...
Рейтинг: 0 / 0
13.03.2012, 20:33
    #37703627
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
AndrewQwerосталось подождать
Применяю и GO и FOR, если правильно всё делать, без программного стека и "подвисших" NEW - программки работают без проблем.
По огрызку кода ничего не понять. Делай тестовый пример, показывай тут - догда будет больше конкретики.
...
Рейтинг: 0 / 0
14.03.2012, 09:25
    #37704123
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
krvsaAndrewQwerосталось подождать
Применяю и GO и FOR, если правильно всё делать, без программного стека и "подвисших" NEW - программки работают без проблем.
По огрызку кода ничего не понять. Делай тестовый пример, показывай тут - догда будет больше конкретики.
ну передлав все на FOR с неким условием выхода все пошло без проблем. Просто когда идет GO из одного блока, потом обратно и так по кругу тут интуитивно понятно что неправильная вещь происходит :). А что значит "подвисшие" NEW? просветите плизз.
...
Рейтинг: 0 / 0
14.03.2012, 14:17
    #37704815
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
...
Рейтинг: 0 / 0
14.03.2012, 14:36
    #37704855
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
AndrewQwerкогда идет GO из одного блока, потом обратно и так по кругу тут интуитивно понятно что неправильная вещь происходит :).
Код: c#
1.
2.
3.
4.
5.
6.
BODY	
  ; ...
  G PROCESSCHOICE
PROCESSCHOICE
  ; ...
  G BODY        


И какая здесь неправильная вещь происходит? Ну ходит по кругу, и что тут должно глюкнуть?
...
Рейтинг: 0 / 0
15.03.2012, 12:48
    #37706381
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
ну яAndrewQwerкогда идет GO из одного блока, потом обратно и так по кругу тут интуитивно понятно что неправильная вещь происходит :).
Код: c#
1.
2.
3.
4.
5.
6.
BODY	
  ; ...
  G PROCESSCHOICE
PROCESSCHOICE
  ; ...
  G BODY        


И какая здесь неправильная вещь происходит? Ну ходит по кругу, и что тут должно глюкнуть?

Ну а что здесь хорошего? :) еще в школе учили что использовать goto это грешно :) Cache поломало мне мировоззрение!!!
...
Рейтинг: 0 / 0
15.03.2012, 13:10
    #37706451
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
AndrewQwerНу а что здесь хорошего? :) еще в школе учили что использовать goto это грешно :) Cache поломало мне мировоззрение!!!
Вот и докопались до первопричины. Так это значит еще в школе Вам карму испортили, и на все компьютеры порчу навели. У Вас теперь на любом языке goto должен глючить ))))
...
Рейтинг: 0 / 0
15.03.2012, 13:14
    #37706458
MX-9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
AndrewQwer,

не в школе дело

принципиально здесь это хождение по кругу не вызовет FRAMESTACK


проблема осталась замыленой и укусит когда не ждешь

=================
...
Рейтинг: 0 / 0
15.03.2012, 13:38
    #37706521
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
ну яВот и докопались до первопричины. Так это значит еще в школе Вам карму испортили, и на все компьютеры порчу навели. У Вас теперь на любом языке goto должен глючить ))))
наверно так и есть :)
...
Рейтинг: 0 / 0
15.03.2012, 19:32
    #37707394
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
AndrewQwerеще в школе учили что использовать goto это грешно :)
То брэшуть! (с)
...
Рейтинг: 0 / 0
15.03.2012, 19:37
    #37707405
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
AndrewQwerА что значит "подвисшие" NEW?
ну я уже показывал такой пример... Вот мои примеры "как не нужно использовать GO"

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
START
   // действия
LABEL
   // действия 
   d TEST
   // действия
TEST
   n val // "подвисшая" NEW
   // действия
   go LABEL
...
Рейтинг: 0 / 0
15.03.2012, 19:40
    #37707411
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
Вот еще один

Код: javascript
1.
2.
3.
4.
5.
6.
7.
START
   // действия
LABEL
   // действия 
   n val // "подвисшая" NEW
   // действия
   go LABEL
...
Рейтинг: 0 / 0
16.03.2012, 12:53
    #37708293
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
krvsaВот еще один

Код: javascript
1.
2.
3.
4.
5.
6.
7.
START
   // действия
LABEL
   // действия 
   n val // "подвисшая" NEW
   // действия
   go LABEL


т.е. когда блок, в котором обьявлены new не закончил своего выполнения. Но таких блоков у меня 1000% не было, а были только блуждающие туда-суда GO =)
...
Рейтинг: 0 / 0
16.03.2012, 13:30
    #37708369
MX-9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки FRAMESTACK
AndrewQwerkrvsaВот еще один

Код: javascript
1.
2.
3.
4.
5.
6.
7.
START
   // действия
LABEL
   // действия 
   n val // "подвисшая" NEW
   // действия
   go LABEL


т.е. когда блок, в котором обьявлены new не закончил своего выполнения. Но таких блоков у меня 1000% не было, а были только блуждающие туда-суда GO =)

В реальных боевых условиях
1000 %
не дают полной гарантии :)
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как избавиться от ошибки FRAMESTACK / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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