Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Прога основана на Opal. Скомпилирована в VC++ 2005 EE. Если делать большую нагрузку (напр. 50 одновременных телефонных вызовов), то в какой-то момент может вылететь: proga.exe обнаружена ошибка. Приложение будет закрыто Кнопки : отладка, отправить отчет, не отправлять. Что интересно, если это краш-окно не трогать, то будет работать дальше, ущерба для функционала не заметил. Если нажать <отладка> то запускается VC++ 6.0 (у меня отладчик на него стоит). Сообщение: Unhandled exception in proga.exe: 0xC0000005. Access Violation. И картинка которую приложил - всегда одна и та же и числа (адреса? чего?) одни и те же. И чего делать дальше, как искать ошибку в коде глядя на ето? Я как баран на новые ворота на это смотрю. Один раз была в Opal одна ошибка. Developer попросил картинку (типа что я приложил) и глядя на нее исправил (о чудо) ошибку. Я пытался лечить затычками, ограничивая нагрузку в зависимости от пиков CPU Usage: Как получить загрузку CPU в % программно? Это все чуть помогает, но слабенько. Ошибка все одно вылазит. Пытался увеличить время ожидания завершения отдельных потоков внутри приложения по совету одного из авторов кода: thread->WaitForTermination(10000) -> thread->WaitForTermination(100000) Но это боюсь вообще не то. Коды то есть, но там черт не разберется. Дебаг проги (Opal-овский) включить конечно можно, но на 50 вызовов через 5 минут там будут гигабайты, + этот дебаг еще создаст свою нагрузку и задержки. Т.е. вопрос. Я получил картинку "Отладка", что и как мне делать дальше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 15:51 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Что интересно, если это краш-окно не трогать, то будет работать дальше, ущерба для функционала не заметил. Это неинтересно, поскольку значит всего лишь, что упал с AV и аварийно завершился один из рабочих потоков, остальные продолжают как-то работать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 16:04 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found Нет. Данная ошибка скорее всего вообще к делу не относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 16:05 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЭто неинтересно, поскольку значит всего лишь, что упал с AV и аварийно завершился один из рабочих потоков, остальные продолжают как-то работать. Ну, допустим плевать я хотел (как вариант) на это аварийное завершение. Только как сделать чтоб окно не выводилось и прога дальше работала? Сразу скажу, что речь идет не о моих самодельных потоках, которые недавно обсуждали: Как передать строковый параметр в CreateThread? Те я их полностью убрал (неэффективно и чревато). Сохраняю String(WM_COPYDATA) в глобальной переменной и обрабатываю String в таймере. String всегда единственный, если не пустой то таймер его обрабатывает. Но это вообще к тек. вопросу не относится. Просто уточнил, т.к. ты ту тему читал. Если это потоки, то это "родные опаловские", их там черт знает сколько создается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 16:37 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Сохраняю String(WM_COPYDATA) в глобальной переменной Стесняюсь спросить: а мьютекс вы используете при записи и чтении этой переменной потоками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 16:41 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Я ж сказал, что ТЕ (свои) бесполезные потоки я убрал и это к тек. вопросу отношения не имеет: Код: plaintext 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. От этого кода я отказался . Еще раз, это не имеет отношения к текущему вопросу. Крашит OPAL-овкая внутренность. При ОЧЕНЬ большой нагрузке (например 30 или 50 одновременных вызовов, а не 5 или 10). Причем там не просто РАЗГОВОР ПО ТЕЛЕФОНУ, там ФАКСЫ (SpanDSP - T.38 либо G.711 одновременно по всем 50 каналам)- чтоб было понятно про нагрузку. Хотя нагрузки там особой похоже и нет (я поставил ограничитель как смог ), ну 20% CPU, ну импульсы до 40%, а все равно крашит. При генерации указанной краш-ошибки ни одна из линий не вылетает и моя SendMessage конструкция (кусок кода которой я привел) тоже остается работоспособной, т.е. я бы просто эту ошибку ЗАБИЛ (если она критична, то оно потом вылезет, но не факт что реально критична), но знать бы как и куда копать . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 17:12 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Крашит OPAL-овкая внутренность. При ОЧЕНЬ большой нагрузке (например 30 или 50 одновременных вызовов, а не 5 или 10). Это либо баг в самом опале, либо в том, как ты его используешь. В любом случае тебе надо жаловаться автору опала чтобы либо исправил своего бага, либо поставил защиту от идиотов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 17:33 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Понятно что баг. Но одно дело при единственном звонке сделать лог и послать автору. Другое дело при куче звонков. Либо как-то искать самому, выуручиваться и т.п. (что я и пытаюсь), либо никак. Причем прога же сначала компилируется в Release (а в Debug оно кажется и не компилируется вообще), а потом запускается exe. Он и крашит. И знать бы где cout << воткнуть (в километрах то кода) Вариантов (как в VB6) запустить "Play" на проект а он воткнет в место ошибки в коде то нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 17:48 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77одно дело при единственном звонке сделать лог и послать автору.Другое дело при куче звонков. Нет, это одно и то же. При "куче звонков" просто вылазят баги в синхронизации потоков. Они имеют свои особенности, но ловятся точно так же: анализом стэка. Скачиваются .pdb файлы от библиотеки, настраивается DrWatson или аналогичная софтина на сброс дампа памяти, потом в отладчике анализируется backtrace. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 18:01 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Твоя ошибка— защита памяти, обращение по несуществующие адресу, как забороть — очень сложно однозначно сказать, надо раскручивать логику и искать, где съезжает адрес. Это порой очень сложно, поскольку падать может совсем не,в том месте, где ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 18:33 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
MasterZiv как забороть — очень сложно однозначно сказать, ... Я предложил вариант ЗАБИТЬ , т.е. проигнорировать, но вот как это сделать. Dimitry Sibiryakov, либо в том, как ты его используешь... Есть одно соображение. Раньше я использовал такую "технологию пуляния файлами": Proga1(VB6) делает WriteFile -> Proga2(C++) делает ReadFile и наоборот Proga2(С++) делает WriteFile -> Proga1(VB6) делает ReadFile Сейчас я заменил на новую "отработанную" технологию. Proga1(VB6) делает SendMessage(CopyData) -> Proga2(C++) читает в WndProc и наоборот Proga2(С++) делает SendMessage(CopyData) -> Proga1(VB6) читает в WndProc Но здесь есть один недостаток. SendMessage не завершается пока не получит код возврата от того кому посылали. В примере кода выше: 14908427 хорошо видно что в case WM_COPYDATA результат возвращается сразу (спас VB6 приложения от "ожидания"), а обработка уже в WM_TIMER. Но то SendMessage которое в WM_TIMER (обратка) уже будет ждать пока VB6 его обработает. В данной ситуации это не страшно. Но я так же практикую: (Какой-то внутренний поток в C++) делает SendMessage(CopyData) -> Proga1(VB6) читает в WndProc И не просто читает а ОБРАБАТЫВАЕТ, т.е. делает запись в БД, конвертирует файл из одного формата в другой и т.п. И в варианте с SendMessage этот (Какой-то внутренний поток в C++) будет ждать пока VB6 это сообщение обработает При увеличении нагрузки время обработки увеличивается, и это возможно м.б. критично. (Какой-то внутренний поток в C++) м.б. Call_established, Call_released, Fax_Connected, Fax_Sent_OK. Т.е. проблема с SendMessage в том, что я заставляю процесс ЖДАТЬ ТАМ ГДЕ ЭТО НЕ НУЖНО ПО ЛОГИКЕ В случае с пулянием файлами поток просто скидывает файл на диск (это быстро), а VB6 пусть его обрабатывает хоть 2 часа. Ну, если только вот это. По идее нужно что-то другое вместо SendMessage, тут советовали. 13794617 13795624 но переделывать идеологию обмена, это не раз плюнуть. И подозреваю (по ощущениям) что ошибка не связана с механизмом COPY_DATA. Как вариант, воспроизвести тот же эксперимент с "пулянием файлами" на "старой версии" (ранее не делал). и посмотреть будет ли вылазить эта же ошибка. (запись файла точно не вносит задержки в поток) Но я боюсь что я не сумею воспроизвести ТАКУЮ ЖЕ интенсивность процессов, ведь пуляние файлами очень инертно. С пулянием файлами у меня 3 таймера по 1 сек (чтоб отослать задание и получить ответ). А здесь у меня 300мс + 500мс + WndProc (как только так сразу). А "3 таймера по 1 сек " по определению не позволят задействовать "мощности", меньше заданий в единицу времени стартуются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 19:41 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Т.е. проблема с SendMessage в том, что я заставляю процесс ЖДАТЬ ТАМ ГДЕ ЭТО НЕ НУЖНО ПО ЛОГИКЕ В случае с пулянием файлами поток просто скидывает файл на диск (это быстро), а VB6 пусть его обрабатывает хоть 2 часа. Ну, если только вот это. И подозреваю (по ощущениям) что ошибка не связана с механизмом COPY_DATA. Как вариант, воспроизвести тот же эксперимент с "пулянием файлами" на "старой версии" (ранее не делал). и посмотреть будет ли вылазить эта же ошибка. (запись файла точно не вносит задержки в поток) Но я боюсь что я не сумею воспроизвести ТАКУЮ ЖЕ интенсивность процессов, ведь пуляние файлами очень инертно. Да не. Воспроизвел то же самое с "пулянием файлами". Перенастроил 3 таймера по 100мс (2 в VB6 и один в C++ через {PThread::Sleep(100);...}) Куда уж меньше. Приложение с объемами в 30-50 линий справляется, с "пулялкой" не путается, все ж продумывал когда-то. т.е. та же интенсивность А ошибка вылазит (та же самая!!! как на картинке - с теми же цифрами). Если не закрывать crash-окно - работа продолжается. Ну, хотя бы могу сказать что новосделанный "механизм COPY_DATA" тут не причем(хотя соображение про "время ожидания ответа на SendMessage" меня не очень греет). Можно не грешить на это. Ошибка где-то в недрах Opal. Я в принципе согласен на "усыпить", только вот как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 21:12 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
А как сделать так чтоб прога по команде Start Debugger (в студии) запускалась также как и exe: Т.е. я поставил Linker -> General Output File C:\Program Files\Proga/proga.exe (вместо .\Release/proga.exe) Компилируется теперь туда где работает. Прога запускается, библиотеки видит. Но чего-то "стандартного для себя чего ей обычно надо" не видит (как если бы из своей директории). Такое ощущение что рабочая папка не та. Что ей еще не хватает? Хотя чесно не знаю что мне это даст Binary was not built with debug information. ... но попытаться то стоит.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 23:44 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Короче кажется везет, дебаггер (2005) тыкает меня в единственное место кода причем в код самой dll (Opal). Т.е. насколько я понимаю, кто-то (с опозданием) пытается закрыть вызов - перевести Connection в phaseToSet=ReleasedPhase, а текущая phase уже пустая (вызов был прикрыт из другого места) и this* уже разрушено. И как быть (ЗАБИТЬ)? Надо наверно написать If phase отсутствует -> на выход функции Нет? Есть идеи? По хорошему посылать автору эту картинку с вопросом "как такое может быть"? Искать кто вызывает ф-цию? Это можно намудрить... Я думаю при включенном PTRACE оно б еще строчкой раньше вылетело, ГЫ...но в логе было бы пусто. Кстати, эти дебажьи картинки как-то в текст трансформируются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 01:24 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Попробовал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. все равно вылетает и тыкает в строчку Код: plaintext 1. -вроде ж это в блоке try . Всего лишь хочу сделать Код: vbnet 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 03:44 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Я предложил вариант ЗАБИТЬ, т.е. проигнорировать, но вот как это сделать. Тоже достаточно сложно, практически никак. Идея в том, чтобы обрамить какие-то вызовы выше по стеку того места, где происходит ошибка, стеком SEH-исключений, и исключение игнорировать (я бы логировал лучше). Но для этого надо знать хотя бы, где это происходит и иметь этот код в своих руках, хотя бы тот, что его вызывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 12:16 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
MasterZivНо для этого надо знать хотя бы, где это происходит и иметь этот код в своих руках, хотя бы тот, что его вызывает. Код то в руках. Ты картинку выше видел (Debug 2005-й студии)? Я уткнулся в место ошибки (в коде). И я могу затупить ф-цию даже через try...catch (сделав например cout << value, где с value проблемы) -у меня это в итоге получилось вроде. Только код в этом случае идет дальше своим путем, и путь этот неверный, я тут же получаю ошибку в другом месте, причем не в Opal а уже в ptlib (более общие ф-ции), а там уже логику не отследишь вообще никак. А в случае НЕ-нажатия кнопки в crash-окне как было подмечено(видимо верно) один из потоков просто вылетает. А поток этот скорее всего уже и не нужен (this=Connection, суть вылетающего кода как раз сделать ему Released), поэтому все и работает, если crash-окно не трогать. А если я "пропускаю", то "больной" поток продолжает куролесить. Как то так. P.S. На автора надежды мало. Это старая версия Opal. Уже пытался, получил 2 письма, они вообще не по сути вопроса, он по ходу не врубился в описание проблемы. Надо как то самому учиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:20 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Ты картинку выше видел (Debug 2005-й студии)? Я уткнулся в место ошибки (в коде). Картинку не видел. Ну и что там видно ? Переменная phase не инициализирована. Инициализируй, если так всё просто , и всё будет ОК. Но сдаётся мне, что не всё будет так просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:34 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77И я могу затупить ф-цию даже через try...catch (сделав например cout << value, где с value проблемы) -у меня это в итоге получилось вроде. Только код в этом случае идет дальше своим путем, и путь этот неверный, Не пойдёт. SEH выкинет исключение, и стек раскрутится до ближайшего верхнего TRY/CATCH блока. Дмитрий77я тут же получаю ошибку в другом месте, причем не в Opal а уже в ptlib (более общие ф-ции), а там уже логику не отследишь вообще никак. Делай TRY/CATCH на самом верху логики работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:39 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
MasterZivSEH выкинет исключение, и стек раскрутится до ближайшего верхнего TRY/CATCH блока. И давно catch начал ловить SE вместо __except?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:44 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMasterZivSEH выкинет исключение, и стек раскрутится до ближайшего верхнего TRY/CATCH блока. И давно catch начал ловить SE вместо __except?.. Да не важно, все же поняли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 21:06 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
MasterZivНо сдаётся мне, что не всё будет так просто. Там не просто. Дебаг (опаловский) я включил, но он не много чего дает. При нормальном течении событий должно быть так: 2013/10/02 22:07:54.593 PSimpleThread: 13016 OpalCon SetPhase from ReleasingPhase to ReleasedPhase for Call[Ca2cc2b7619]-EP<fax>[F8745179d20] 2013/10/02 22:07:54.593 PSimpleThread: 13016 PTLib Thread ended: name="PSimpleThread:13016", real=0.109, kernel=0.016 (14.6%), user=0.000 (0%), both=0.016 (14.6%) Выполняется SetPhase (поток 13016), потом этот поток завершается (Thread ended). Все. Как он его завершает я понять не могу. При ненормальном течении событий ф-ция SetPhase (вызывается из OpalConnection::OnReleased) крашит: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. (если не мудрить, то дебаггер остановится на строчке, которая выделена красным -"this is the next statement that will be executed") Если смотреть в дебаггере в *this и в phase, то там везде будет CXX0030 Error: expession can not be evaluated. Т.е. *this по сути уже уничтожена на момент вызова. Что я хочу попробовать сделать (и думаю этого достаточно). 1) Остановить поток Код: plaintext 1. Для остановки потока этого достаточно. Если его не остановить, он понаделает делов. 2) Посмотреть логи и подумать/попробовать можно ли самозавершить поток (чтоб он не висел). Т.е. при возникновении ошибки надо что-то сделать. Вопрос: как все-таки правильно отловить ошибку . Я например делаю так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Он выкидывает меня на "красной строчке" после try catch. (желтая стрелочка в дебагере). Такое ощущение что задница с "CXX0030 Error: expession can not be evaluated" может наступить в любой момент. Т.е. на момент вызова еще не задница, а в момент выполнения уже задница, причем на любой строчке ф-ции. Т.е. как все-таки правильно отловить любое исключение в приведенной ф-ции? Ну, мне наверно пример кода нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 22:52 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Дмитрий77вызывается из OpalConnection::OnReleased А откуда вызывается этот самый OnReleased? Что-то у меня чувство, что он вызывается уже после освобождения объекта... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 23:02 |
|
||
|
А реально ли найти ошибку глядя на this CXX0017: Error: simbol this not found
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА откуда вызывается этот самый OnReleased? Там все очень запутано. Например отсюда. Но не исключено что еще откуда-то может. Код: plaintext 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. Dimitry SibiryakovЧто-то у меня чувство, что он вызывается уже после освобождения объекта... У меня тоже такое чувство. Думаю что он м.б. вызван дважды и трижды из разных мест, типа чтоб наверняка, а при перекрестной бомбежке при большой нагрузке и дефеците времени какое-то условие может провериться неправильно. Еще есть чувство что объект может освободиться в процессе выполнения OnReleased. (т.е. когда принималось решение вызвать OnReleased, с объектом было все в порядке, а в процессе работы с объектом объект был разбомблен извне). Т.е. я и хочу в SetPhase проверять что объект еще вменяем и если нет, то стопорить поток. Как проверять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 23:30 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38413542&tid=2019944]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
192ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 301ms |

| 0 / 0 |
