|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Добрый день! Нужен лог ошибок, в котором записано какой sub был вызван в момент появления ошибки. Как узнать имя вызванного sub? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 05:49 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Стесняюсь спросить:а зачем? Если ошибка в коде то это не код Если ошибка возникает в результате действий пользователя то код и пишется для того чтоб этого избежать (часто "защита от дурака" занимает намного больший объем чем "полезный" код) обработчик ошибок обязан присутствовать в сколь-нибудь "серьезном" коде. Единственное-отключение питания. В зависимости от важности информации применяют ИБП ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 12:35 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
quickstarДобрый день! Нужен лог ошибок, в котором записано какой sub был вызван в момент появления ошибки. Как узнать имя вызванного sub? В обработчике ошибок и напишите имя процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 14:12 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
quickstar, Да и ошибка-ошибке рознь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 14:14 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
ROI, вот и нужно понять как имя процедуры через VBA узнать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 16:38 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
sdku, чтобы знать где именно ошибка возникла. чтобы опираться на факты, а не на мнение пользователя о том, что произошло. открыл лог и посмотрел в какой процедуре ошибка была. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 16:40 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Может есть метод как узнать строку, на которой произошла ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 16:59 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
quickstarsdku, чтобы знать где именно ошибка возникла. чтобы опираться на факты, а не на мнение пользователя о том, что произошло. открыл лог и посмотрел в какой процедуре ошибка была.Вы говорите об этапе отладки.А при использовании приложения не должно быть никаких ошибок. Для этого и создан обработчик ошибок.Если она случится, а обработчика нет,что произойдет? Поэтому-то он и нужен.Какие при этом выполнятся действия зависит только от Вас (В том числе и запись кода ошибки и имя объекта в таблицу ). Лично мне не известно свойство которое бы возвращало имя процедуры. Да и вся Ваша затея весьма сомнительна-после передачи в работу проекта возникновение ошибок-плохая(никудышняя) программа. тынц (Много ошибок,которые останавливают работу программы Вы встречали в Ворде или Ёкселе) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 20:21 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
quickstarНужен лог ошибок, в котором записано какой sub был вызван в момент появления ошибки. Как узнать имя вызванного sub? - в момент появления ошибки уже никакой sub не вызывается, программа вылетела и всё... - по идее в каждой стремной процедуре должен быть тот самый обработчик ошибок, который и может при желании писать лог вместо вылета программы, вот один из простых примеров: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
sdku(часто "защита от дурака" занимает намного больший объем чем "полезный" код) Ну почти всё так как уже говорили, главное чтобы программа говорила что не так, а не тупо вылетала... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 21:49 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
quickstarМожет есть метод как узнать строку, на которой произошла ошибка?Err.Source Если у строки есть метка - именно она и будет в этом свойстве. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 07:18 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Стоп, вру. Это Access - т.е. err.source содержит имя процедуры/функции, в которой возникла ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 07:27 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
AkinaСтоп, вру. Это Access - т.е. err.source содержит имя процедуры/функции, в которой возникла ошибка.нее, это будет имя vba-проекта базы (оно не обязательно совпадает с именем БД) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 07:52 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
quickstarМожет есть метод как узнать строку, на которой произошла ошибка?метод есть - erl Но для того что бы она возвратила что-то полезное, нужно что бы строка на которой произошла ошибка имела числовую метку Типа этого Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 07:57 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
court, Зачем такие извращения делаем стандартный обработчик ошибок в 99 случаех хватает Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
это для форм. для модулей убираем Me.Name ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 08:20 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
ROI, И в чём "извращение" ? ТС хочет "запилить" глобальный обработчик ошибок, разве ещё кто-то не понял ? Вполне похвальное желание, имхо, все через это проходили :) Плюсы вполне очевидные: - везде, во всех подпрограммах, будет стандартный обработчик ошибок, который можно даже в шаблон Sub/Function вставить и забыть о нём навсегда. - обработчик ошибок один для всего, а там уже делай в нём что хочешь, - хочешь в лог пиши, хочешь смс-ку разработчику отправляй. - в режиме отладки - реагировать так, а в нормальном, рабочем режиме - иначе. И весь перевод из одного режима в другое, - это изменение значения одной константы - можно предусмотреть возврат из обработчика какого-то кода, по которому "упавшая" процедура будет действовать дальше В общем, что-то типа такого Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Но, реально, в ВБА, сделать такое "по-простому" не получится. Разве что, писать какой-то парсер модулей, который будет "бегать" по процедурам, нумеровать строки, определять наименование подпрограммы и прописывать блок обработки ошибок ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 09:12 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Слышал про MZTools. Может автору поможет. Сам не пользовался. Вот: Автоматическая вставка обработчиков ошибок в модули Вставка комментариев в заголовок процедуры, с автоматической вставкой времени, имени модуля и процедуры, возможностью указать автора процедуры Автоматическая нумерация строк кода Снятие нумерации со строк кода Создание шаблонов часто используемых кодов ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 10:42 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
все уже написано кстати пользую, модифицированный под себя конечно, но суть та же в обычных процедурах по err.raise улетаем в головную, где происходит обработка события ошибки - выход из каких-то программ(закрытия Excel скажем, запись в лог и т.д. и т.п.) все это используется для модулей класса и аналогичных вещей где одна функция вызывает кучу подфункций. создатель назвал его "Всплывающий обработчик ошибок". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 11:20 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
courtНо, реально, в ВБА, сделать такое "по-простому" не получится. Разве что, писать какой-то парсер модулей, который будет "бегать" по процедурам, нумеровать строки, определять наименование подпрограммы и прописывать блок обработки ошибок Опять повторюсь --Зачем такие извращения!? Alecko вам даже ссылку дал (изучайте) Что доктор прописал. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 12:14 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Вообще не понимаю зачем весь этот огород с наворотами по обработке ошибок, да еще с указанием строки... Если в этом есть у кого очень острая необходимость, советую срочно просто поменять профессию, это не ваша стезя... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 13:16 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
vmagВообще не понимаю зачем весь этот огород с наворотами по обработке ошибок, да еще с указанием строки... Честно говоря, не ожидал от Вас такого ответа :) Эти навороты обязательно нужны в любой более-менее сложной программе, передаваемой заказчику, который не разбирается в Акцессе и не полезет в отладчик. Это просто необходимо для качественной поддержки приложения. Обработчик должен выдать подробную информацию, которую можно послать скриншотом разработчику для быстрого определения источнока ошибки. Ни одна более-менее сложная программа не обходится без ошибок, это сделать практически не реально. К тому же бывают не зависящие от качества написания кода ошибки: диска, сети, повреждения файлов, корявые данные и т.д. и т.п. - всех ситуаций не предусмотришь и все баги выловить тоже практически не реально. Я всегда передаю заказчику программы, которые выводят подробную информацию об ошибке, включая стек вызова процедур с номерами строк в каждой процедуре. Без использования MZ-Tools сделать корректный обработчик быстро нельзя, ибо нужно нумеровать строки и вписывать имя модуля и имя процедуры текстом, т.к. получить эти данные без запущеного редактора VBA не возможно, это абсолютно точно, изучал вопрос подробно. Тулза позволяет это сделать одним нажатием клавиши. Могу привести здесь мои шаблоны обработчиков и саму процедуру обработки, обкатанные на многих программах и клиентах. Типов обработчиков как минимум нужно 2 - "всплывающий" и "клиентский" - выводящий собственно сообщение об ошибке. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 14:43 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShin, да, покажите, пожалуйста. Я хочу пользователя всего-лишь уведомить, что "ошибка записана в лог", а весь необходимый набор данных отправляется мне в MySQL. От данных о компе и сборке Access до строки, в которой произошла ошибка. Цель проста - без общения с пользователем понимать источник и причину бага. Пользователь рассказывает свое мнение. а нам нужно опираться на факты. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 15:05 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
quickstarMrShin, да, покажите, пожалуйста. слепой вы чёли. https://www.sql.ru/forum/1283697/obrabotka-oshibok-pri-vyzove-procedury-iz-procedury ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 15:44 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
vmagВообще не понимаю зачем весь этот огород с наворотами по обработке ошибок, да еще с указанием строки...+100500 MrShinНи одна более-менее сложная программа не обходится без ошибок, это сделать практически не реально. К тому же бывают не зависящие от качества написания кода ошибки: диска, сети, повреждения файлов, корявые данные и т.д. и т.п..Еще как обходится. Разве что непредвиденные ошибки,которые и возникают по вышеперечисленным причинам (достаточно знать что она возникла,без разницы где-потому как возникнуть может в любом месте, и надо разбираться с "железом" или сетью).А все остальное-выполненный небрежно(или вообще не выполненный) этап разработки называемый ОТЛАДКА(который зачастую очень трудоемок,сложен и занимает много времени-а все о чем говорится в этом топике есть попытка переложить часть этого этапа на пользователя и РС)-передавать такую программу заказчику ой как рано ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:16 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Я использую MZ-Tools 8, он платный, но есть бесплатный V3, там шаблоны аналогичные. Вот наиболее используемый шаблон MZ-Tools для вывода сообщения об ошибке, используется в процедурах, которые вызываются системой и могут взамидействовать с пользователем - события обычно Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Здесь $P Код: _ELEMENT_NAME 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Задача этого обработчика - только добавить в сообщение об ошибке дополнительную информацию о месте ошибки и отправить ошибку выше. Конструкция Код: vbnet 1.
останавливает выполнение для отладки до передачи ошибки выше. Соотвественно, константы STOP_AT_ERROR и IS_DEV - просто булевские, в режиме отладки обе должны быть True, в продакшне просто меняю значение IS_DEV на False и остановок с перебрасыванием в редактор не будет. Третий тип - всплвающий обработчик с финальным кодом, который должен быть выполнен в любом случае, обычно это закрытие курсоров: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Финальный код вставляется как и в случае первого обработчика сразу после On Error Resume Next Ну и, собственно процедура записи в базу и вывода ошибки на экран: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
Процедура не зациклится, если возникнет ошибка при ее выполнении (например, если таблица с логами ошибок будет недоступна) На картинке один из примеров выдачи, когда ошибка возникла на 3-м уровне вызовов процедур, при этом в самой верхней процедуре, взаимодействующей с пользователем (cmdAccept_Click) были не пронумерованы строки, поэтому самый последний символ - 0, а не номер строки. Т.к. в этой процедуре было несколько сот строк, то определить причину было сложно, поэтому стараюсь не забывать нумеровать строки ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:20 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
sdkuэтап разработки называемый ОТЛАДКА Кроме отладки вобщем случае есть этап тестирования, котрый обычно выполняется не разработчиком, а тестером, котрый может не занть VBA совсем, и подробная выдача жизненно необходима. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:24 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShin.... который не разбирается в Акцессе и не полезет в отладчик.... А вот информация,которая выведется в окне(как на Вашем скрине)ему о многом скажет и он запросто восстановит работу программы ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:30 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
sdkuА вот информация,которая выведется в окне(как на Вашем скрине)ему о многом скажет и он запросто восстановит работу программы Нет, обычно просто присылается разработчику в виде скриншота, ему это много что скажет. Если обработка ошибок написана правильно, то работа всего приложения нарушается очень редко и можно продолжать тестирование ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:35 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShinЧестно говоря, не ожидал от Вас такого ответа :) Просто есть разные подходы, у меня такой: 1. Общий алгоритм (ТЗ) если он ущербен, обработчик ошибок не имеет смысла. 2. Рабочий алгоритм - это способ реализации Общего алгоритма (ТЗ), как правило имеет модульную структуру, каждый модуль многократно тестируется в автономном режиме до момента его устойчивого рабочего состояния, многие из них берутся уже в готовом, отлаженном виде, например отсюда. После этого достаточно по одному обработчику на модуль на форс мажор для ... sdkuРазве что непредвиденные ошибки 3. Ну и отделяем мух от котлет - отлаженный алгоритм требует на вход корректных данных, это называется контролем входных данных, который никакого отношения к обработке ошибок общего алгоритма не имеет... Как раз те кто игнорируют качество пунктов 2 и 3 попадают на грабли: не рабочий алгоритм + отсутствие контроля входных данных... sdkuпередавать такую программу заказчику НЕЛЬЗЯ ! Это ставить на себе крест... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:41 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
тестирование проводится до передачи продукта клиентам (если передать до тестирования-навряд ли к Вам повторно обратятся) Конечно для ACCESS все попроще будет,но основные положения надо блюсти ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:46 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Я абсолютно согласен, что конечный пользователь не должен видеть сообщений с технической информацией, это огромный минус и катастрофа, поэтому основное предназначение - этап тестирования и корректное завершение работы при системных сбоях. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:57 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
В конце концов приходим к этому:(написано вчера в 12.35) sdkuСтесняюсь спросить:а зачем? Если ошибка в коде то это не код Если ошибка возникает в результате действий пользователя то код и пишется для того чтоб этого избежать (часто "защита от дурака" занимает намного больший объем чем "полезный" код) обработчик ошибок обязан присутствовать в сколь-нибудь "серьезном" коде. Единственное-отключение питания. В зависимости от важности информации применяют ИБП ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 17:07 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
sdkuВ конце концов приходим к этому Основной причины нет - тестирования. Любое последующее изменение может приводить к неожиданным ошибкам, которые тоже нужно выловить и исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 08:27 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShinsdkuВ конце концов приходим к этому Основной причины нет - тестирования.+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 08:54 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
ROIcourtНо, реально, в ВБА, сделать такое "по-простому" не получится. Разве что, писать какой-то парсер модулей, который будет "бегать" по процедурам, нумеровать строки, определять наименование подпрограммы и прописывать блок обработки ошибок Опять повторюсь --Зачем такие извращения!? Alecko вам даже ссылку дал (изучайте) Что доктор прописал.смешной ты, алвк :) дык, по той ссылке, именно то, что я выше и "расписал", с точностью до имён процедур :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 08:59 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
courtROIпропущено... Опять повторюсь --Зачем такие извращения!? Alecko вам даже ссылку дал (изучайте) Что доктор прописал.смешной ты, алвк :) дык, по той ссылке, именно то, что я выше и "расписал", с точностью до имён процедур :)) Смешной ты (я про нумерацию строк) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 10:12 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
court, что-то не слышал про стандартную процедуру "GlobalErrHandle" - в аксе по F1 в справке нет ничего, здесь тоже , и эта процедура как понимаю лишь разделяет режимы отладки да работы. mrShin ещё раз привел свои наработки.пока не попробуешь их думаешь куда столько кода, а в реальности там именно так как и пишет vmag - одна процедура на модуль, да и то не на каждый. в обычных процедурах пара строк. я запоминаю имя процедуры путем присвоения её имени public переменной (в которой процедуре ошибка произошла - та и осталась в этой переменной) - не очень удобно, однако в этом случае остальной модуль обработки становится неизменяемым, использую обычный текстовый редактор (не mztoolz), с которого копирую все в новый модуль. лишь меняю название процедуры. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
переменную в которой сохранено имя процедуры можно и не вытаскивать далеко а сделать типа M1StakeAmmounce & chr(32) & MistakeFunction ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 11:19 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
aleckocourt, что-то не слышал про стандартную процедуру "GlobalErrHandle" дык, она никакая и ни стандартная :) Это была "иллюстрация идеи" :) Собственно эта функция то, что в коде MrShin представляет собой функция LogError ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 11:26 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShin, Да, хорошее тестирование - залог успеха... Стоит только временно заремить строку On Error GoTo в проблемной процедуре, тут же получишь строку на которой споткнулся алгоритм... Большие и сложные модули для удобства можно разбивать на условные этапы и ловить ошибки по этапно: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 11:58 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Ребята,а Вам не кажется,что топик перерос в обсуждение способов отладки (тестирования), и не зависимо от того как (существует "мильон" вариантов:кто как считает нужным и как может-топика явно не хватит для рассмотрения всех способов), хочется подчеркнуть что этот этап крайне важен и безусловно обязателен ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 14:06 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
aleckoне нужно комментировать debug.assert как в способе от MrShin _ достаточно поставить эту переменную в false Так и в случае с Debug.Assert тоже ничего комментировать не надо, достаточно любую из переменных STOP_AT_ERROR или IS_DEV поставить в False. Я хоть и пишу, что эти отладочные строки нужно удалить в релизе, реально никогда этого не делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 17:06 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
vmagСтоит только временно заремить строку On Error GoTo в проблемной процедуре, тут же получишь строку на которой споткнулся алгоритм Это работает, если тестируешь сам. Для отдельного тестера это не вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 17:09 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShinЭто работает, если тестируешь сам. Из лично моей практики, утвердилось правило: хочешь сделать хорошо - сделай сам... Особенно это правило работает в разрезе проектов Access, я так думаю процентов 99 готовых проектов в этой области делали одиночки, ну мне так кажется... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 17:38 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1610535]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 513ms |
0 / 0 |