debug ошибка, помогите
#1

Добрый вечер, помогите пожалуйста
PHP Code:
[20:33:37] [debugRun time error 3"Stack/heap collision (insufficient stack size)"
[20:33:37] [debug]  Stack pointer (STKis 0x5120CCheap pointer (HEAis 0x512614
[20:33:37] [debugAMX backtrace:
[
20:33:37] [debug#0 ???????? in public OnDialogResponse () 
OnDialogResponse
максимальный стринг srting[512]; - глобальная переменная
Reply
#2

Переполнение стэка. Увеличь размер стэка с помощью #pragma dynamic
Reply
#3

не, есть другой выход?, я не хочу быдлокод иметь...
Reply
#4

Да ладно, не хочешь, не делай.
Reply
#5

Quote:
Originally Posted by Garsio
View Post
не, есть другой выход?, я не хочу быдлокод иметь...
Этот вопрос уже тут обсуждался и не раз, и насколько я понял в этом ничего страшного нет если вы увеличите размер стока. На счет быдлокода, тогда стоит пересмотреть функции и локальные переменные.
Reply
#6

Компилятор:
PHP Code:
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase
Header size
:          15580 bytes
Code size
:          2336436 bytes
Data size
:          4761832 bytes
Stack
/heap size:      16384 bytesestimated maxusageunknowndue to recursion
Total requirements
7130232 bytes 
Как я помню heap size не может быть больше 16364, как мне уменьшить?
Или как мне нужно поступить, что бы мод функционировал нормально
Reply
#7

Для начала тебе нужно рекурсию исправить
"estimated max. usage: unknown, due to recursion"
Reply
#8

Quote:
Originally Posted by Garsio
View Post
не, есть другой выход?, я не хочу быдлокод иметь...
Ты его уже имеешь.

А по теме: считай, когда выделяешь размер локальных переменных, и когда форматируешь. Точно не помню, вроде внутри функции можно выделять до 2000 - 4000 ячеек, если превысишь данное ограничение то будет предупреждение как у тебя.
Reply
#9

Quote:
Originally Posted by Reim
View Post
Для начала тебе нужно рекурсию исправить
"estimated max. usage: unknown, due to recursion"
Рекурсия может использоваться для сортировки массива, например. Зачем её исправлять в таком случае?
Reply
#10

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

Рекурсии в моде нет, проверял не однократно, ошибка из-за heap size
Reply
#11

Garsio, быдлокод? Значит вытащите из компа всю память и поставьте одну планку на 256 МБ, минимум для загрузки оси. Это равносильно будет.
Увеличения стека это почти необходимая процедура, особенно если занимаемся ресурсоёмкими задачами.
Reply
#12

Quote:
Originally Posted by Garsio
View Post
Компилятор:
PHP Code:
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase
Header size
:          15580 bytes
Code size
:          2336436 bytes
Data size
:          4761832 bytes
Stack
/heap size:      16384 bytesestimated maxusageunknowndue to recursion
Total requirements
7130232 bytes 
Как я помню heap size не может быть больше 16364, как мне уменьшить?
Или как мне нужно поступить, что бы мод функционировал нормально
Увеличение стека - обычная практика, нужно увеличить - увеличивай. Если вы видите в этом какой-то "быдлокод", то вы явно занимаетесь не тем, и вам стоит идти играться, и не тратить не свое, и не наше время.
Reply
#13

#pragma dynamic

- как правильно указать число?

Спасибо всем, кто откликнулся
Reply
#14

Quote:
Originally Posted by Garsio
View Post
#pragma dynamic

- как правильно указать число?

Спасибо всем, кто откликнулся
2 в степени - будет правильно. Например
#pragma dynamic 4096 //8192//16384//32768//65536//131072//262144
Reply
#15

Выше всё сказали. Лишь добавлю, что по умолчанию компилятор определяет размер стека равному 4096.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)