SA-MP Forums Archive
Как найти рекурсию в моде ? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Как найти рекурсию в моде ? (/showthread.php?tid=414011)

Pages: 1 2


Re: Как найти рекурсию в моде ? - Alexander_Petrov - 08.02.2013

Quote:
Originally Posted by Richard_Gere
View Post
На сколько мне известно при дебаг моде это сообщение выводится всегда. Для примера попробуйте скомпилировать в дебаг моде какой-нибудь стандартный скрипт SAMP (attachments, test-cmds etc.)
Выводится, но не с рекурсией.


Re: Как найти рекурсию в моде ? - Mexanizm93 - 08.02.2013

Quote:
Originally Posted by Richard_Gere
View Post
На сколько мне известно при дебаг моде это сообщение выводится всегда. Для примера попробуйте скомпилировать в дебаг моде какой-нибудь стандартный скрипт SAMP (attachments, test-cmds etc.)
Я знаю.

Мне нужно узнать где у меня в моде рекурсия.

Code:
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion



Re: Как найти рекурсию в моде ? - Richard_Gere - 08.02.2013

Точно, раньше не давал этому особого значения. Может это из-за YSI инклюдов? Так как я их тоже использую и у меня пишет что рекурсия, хотя её нигде у меня и нету.


Re: Как найти рекурсию в моде ? - Mexanizm93 - 08.02.2013

Вчера отключил инклуды ******'a но рекурсия осталась

#include <YSI\y_commands>
#include <YSI\y_master>


Re: Как найти рекурсию в моде ? - eakwarp - 08.02.2013

Quote:
Originally Posted by Mexanizm93
View Post
Вчера отключил инклуды ******'a но рекурсия осталась

#include <YSI\y_commands>
#include <YSI\y_master>
Вы внимательно прочитайте хоть то, что вам пишет компилятор =/


Re: Как найти рекурсию в моде ? - CKA3KuH - 08.02.2013

-d2/-d3 добавляет дополнительную информацию в компилятор. При этом, значение всегда будет 16384 байт.

Единственное решение, изменить ключ или - #pragma dynamic

P.S. Если есть сообщение о рекурсии - убрать ее.


Re: Как найти рекурсию в моде ? - Alexander_Petrov - 08.02.2013

Quote:
Originally Posted by CKA3KuH
View Post
-d2/-d3 добавляет дополнительную информацию в компилятор. При этом, значение всегда будет 16384 байт.

Единственное решение, изменить ключ или - #pragma dynamic

P.S. Если есть сообщение о рекурсии - убрать ее.
А я и не знал, спасибо за информацию.
О чем были предыдущие 2 страницы обсуждения? -_-


Re: Как найти рекурсию в моде ? - CKA3KuH - 08.02.2013

Quote:
Originally Posted by Alexander_Petrov
View Post
А я и не знал, спасибо за информацию.
О чем были предыдущие 2 страницы обсуждения? -_-
Я Кэп . Простите лопухнулся


Re: Как найти рекурсию в моде ? - Mexanizm93 - 09.02.2013

Убрал я всё, что возвращало строки но рекурсия осталась.
Облазил весь мод не один раз но так и не нашёл рекурсий.

Я уже не знаю что делать...


Re: Как найти рекурсию в моде ? - Stepashka - 09.02.2013

А с чего вы решили что это вообще рекурсия?
Немного помучив поисковики, а точнее сделав всего один поисковый запрос я нашел ответ на вашу проблему.
Quote:

Некотоыре из вас могли замечать такие сообщения при компиляции
Code:
Header size:      216 bytes
Code size:       776 bytes
Data size:       528 bytes
Stack/heap size:   16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:  17904 bytes
или
Code:
Header size:      200 bytes
Code size:       588 bytes
Data size:       512 bytes
Stack/heap size:   16384 bytes; estimated max. usage=10250 cells (41000 bytes)
Total requirements:  17684 bytes
Это значит что компилятор обнаружил что вы используете больше места в stack'е чем доступно. Много важной информации хранится в stack'е, такой как техническая информация о текущей функции, из-за которой PAWN знает куда возвращаться. Используя слишком много памяти, вы можете переписать информацию в stack, возвращая(returning) в случайную точку в коде, что означает абсолютный крэш. В конце концов ваша информация может быть испорчена, когда ее перезапишет другая информация. Когда люди получают эти ошибки стандартный совет использовать #pragma dynamic, который служит обходом проблемы, не решением. Я уверен что застану вас в расплох, сказав то что YSI не вызывает этой ошибки, не смотря на его огромный размер, но маленькие скрипты нубоскриптеров вызывают. А ваш скрипт вызывает ли эту ошибку?

Прошу заметить что в 1 ошибке что я продемонстрировал, значится что вы используете больше stack'а чем положено, но так как функции вызывают сами себя(рекурсия епта), компилятор не может сказать точно сколько stack'а использует скрипт. Заметьте что компилятор не может самостоятельно рассчитать кол-во запусков функции. Во второй ошибке рекурсии нету.

Орфография сохранена.

PS "Элементарно Ватсон" ©


Re: Как найти рекурсию в моде ? - AirKite - 10.02.2013

Quote:
Originally Posted by Mexanizm93
View Post
Мне важна стабильность и поэтому хочу рассчитать сколько памяти будет выделятся. Но грёбаная рекурсия увы не даёт этого сделать.
Quote:
Originally Posted by Mexanizm93
View Post
Код стараюсь писать максимально оптимизированным.
Стараюсь не использовать сторонние скрипты. Использую лиш встроенное в сам samp за исключением YCMD, Streamer, Mysql, Sscanf
Quote:
Originally Posted by Mexanizm93
View Post
Мод пишу с нуля. Циклов бесконечных быть не может
Каждая цитата просто гениальна!!!

По серьёзному, вы противоречите сами себе. В вашем моде возможна рекурсия, где и по каким причинам вам уже объяснили. Что вы сейчас хотите от форума? Упёрлись какой вы грамотный скриптер пишуший мод с нуля, ошибки невозможны

Варианты ваших действий:
1. Смирится с возможной рекурсией (забить).
2. Признать свою ошибку, искать проблему (инструкции вам дали).
3. Продолжать верить в свою гениальность, тупость багнутого компилятора и злых форумчан не желающих вам помочь...

Выбор за вами! Дальнейшие увиливания, с тем же вопросом по теме, можно смело рассчитывать за отсутствие мозгов, имхо. Ибо о чём тут ещё говорить? оО


Re: Как найти рекурсию в моде ? - Mexanizm93 - 15.02.2013

Quote:
Originally Posted by AirKite
View Post
Каждая цитата просто гениальна!!!

По серьёзному, вы противоречите сами себе. В вашем моде возможна рекурсия, где и по каким причинам вам уже объяснили. Что вы сейчас хотите от форума? Упёрлись какой вы грамотный скриптер пишуший мод с нуля, ошибки невозможны
Да. Ошибки возможны но не с циклами это уже точно!


Quote:
Originally Posted by AirKite
View Post
Варианты ваших действий:
1. Смирится с возможной рекурсией (забить).
2. Признать свою ошибку, искать проблему (инструкции вам дали).
3. Продолжать верить в свою гениальность, тупость багнутого компилятора и злых форумчан не желающих вам помочь...

Выбор за вами! Дальнейшие увиливания, с тем же вопросом по теме, можно смело рассчитывать за отсутствие мозгов, имхо. Ибо о чём тут ещё говорить? оО
1. Уже забил. Больше просто не осталось надежд что её найдёшь
2. Посмотри дату первого сообщения в теме. Вот с тех пор я занят только нахождением причин выше сказаных. Перерыл весь мод. Толку НОЛЬ!
3. Нахер придумывать такое ? Я разве сказал где о выше, что я гениален итд ?? Я говорил что форумчане злые и где то всячески их оскорбил ?? Я обратился за помощью к людям, услышать их мнения, посоветоваться


И нахер ты в тему заходишь ели у тебя одна цель тупо посмеяться?? Да базару нет,я не про и мне ещё далеко до этого, но я учусь. А насмехаться, как ты, не есть хорошо.
Quote:
Originally Posted by AirKite
View Post
Каждая цитата просто гениальна!!!

По серьёзному, вы противоречите сами себе. В вашем моде возможна рекурсия, где и по каким причинам вам уже объяснили. Что вы сейчас хотите от форума? Упёрлись какой вы грамотный скриптер пишуший мод с нуля, ошибки невозможны



Re: Как найти рекурсию в моде ? - AirKite - 15.02.2013

Quote:
Originally Posted by Mexanizm93
View Post
Да. Ошибки возможны но не с циклами это уже точно!
Кто то разве сказал что проблема в них? Тут лишь предположили о такой возможности. Проверил, молодец
Quote:
Originally Posted by Mexanizm93
View Post
2. Посмотри дату первого сообщения в теме. Вот с тех пор я занят только нахождением причин выше сказаных. Перерыл весь мод. Толку НОЛЬ!
Что именно ты искал? Я больше чем уверен что ты ничего не понял из выше сказанного (советов, как найти).

Quote:
Originally Posted by Mexanizm93
View Post
Я разве сказал где о выше, что я гениален итд ?? Я говорил что форумчане злые и где то всячески их оскорбил ?? Я обратился за помощью к людям, услышать их мнения, посоветоваться
Это всё было сказано не прямым текстом. Тем не менее, имеет место быть.

Quote:
Originally Posted by Mexanizm93
View Post
И нахер ты в тему заходишь ели у тебя одна цель тупо посмеяться?? Да базару Нет,я не про и мне ещё далеко до этого, но я учусь. А насмехаться, как ты, не есть хорошо.
Вот и сейчас продолжаешь. Я не насмехаюсь а даю бесплатный совет, что бы ты уяснил в чём же проблема. Только тебе походу бестолку...

Никто тут над тобой пока не насмехается, не греби!!!