Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: CrashDetect

  1. #1
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±

    CrashDetect

    Данный плагин выводит в консоль сервера сообщения об ошибках. С его помощью можно найти нужный отрывок кода, из-за которого происходит ошибка или краш сервера.

    Пример:
    Допустим, у нас есть такой код:
    PHP код:
    #include <a_samp>
     
    main() {
        
    function1();
    }
     
    function1() {
        
    function2();
    }
     
    function2() {
        new 
    buf[10];
        
    fread(File:123buf);

    Когда выполнение дойдёт до функции function2, сервер упадёт и, если он запущен под Шindoшs, в crashinfo.txt будет записана непонятная информация о краше.

    Однако с CrashDetect вы можете увидеть более понятное сообщение в server_log.txt
    Код:
    [05:26:38] [debug] Server crashed while executing crash.amx
    [05:26:38] [debug] Backtrace (most recent call first):
    [05:26:38] [debug] #0  native fread () from samp-server.exe
    [05:26:38] [debug] #1  00000090 in ?? () from crash.amx
    [05:26:38] [debug] #2  00000038 in ?? () from crash.amx
    [05:26:38] [debug] #3  0000001c in main () from crash.amx
    Также можно получить более подробную информацию (например строки кода, на которых происходит ошибка, имена функций, параметры и т.д.), скомпилировав скрипт в режиме отладки следующим образом:
    1. Открыть блокнот и ввести "-d3" (без кавычек).
    2. Сохранить файл как "pawn.cfg" (под именем указать параметр "Все файлы") в папку с Pawno.
    3. Заново скомпилировать мод.

    После этого во время ошибки будет выведено следующее:
    Код:
    [05:27:11] [debug] Server crashed while executing crash.amx
    [05:27:11] [debug] Backtrace (most recent call first):
    [05:27:11] [debug] #0  native fread () from samp-server.exe
    [05:27:11] [debug] #1  000000b8 in function2 () at crash.pwn:13
    [05:27:11] [debug] #2  00000048 in function1 () at crash.pwn:8
    [05:27:11] [debug] #3  00000024 in main () at crash.pwn:4
    Теперь можно увидеть имя исходного файла (crash.pwn), название функции (function2) и даже номер строки (crash.pwn:13), на которой произошла ошибка.


    Скачать:
    Самую новую версию плагина всегда можно найти здесь:
    Исходный код:

    Источник: http://forum.sa-mp.com/showthread.php?t=262796
    Автор плагина: Zeex
    Перевод и дополнение: Daniel_Cortez

    Специально для Pro-Pawn.ru
    Последний раз редактировалось Daniel_Cortez; 13.11.2013 в 10:31. Причина: обновил ссылки
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  2. 8 пользователя(ей) сказали cпасибо:
    #ball (05.08.2014) Airon007 (17.06.2013) Amfy (14.06.2013) Dima_Tushin (19.05.2015) L0ndl3m (13.11.2013) Osetin (14.06.2013) Ruskadance (23.06.2013) TWIX (19.11.2013)
  3. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Пожалуй, самыми распространёнными причинами срабатывания CrashDetect являются выходы за пределы массива, поэтому я расписал решение таких проблем в отдельной теме:

    Вот ещё пара примечаний по поводу работы плагина:
    • CrashDetect не работает совместно с плагинами Profiler и JIT, можно использовать только один из них.
    • Перед использованием плагина желательно откомпилировать скрипт в режиме отладки (-d3). Как именно - см. в посте выше.
    • Плагин "crashdetect" должен быть прописан самым первым в строке "plugins" в server.cfg.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. #3
    Аватар для Blood
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    69
    Репутация:
    2 ±
    из-за чего может не подключатся этот плагин ?
    Код:
    [16:02:49] Server Plugins
    [16:02:49] --------------
    [16:02:49]  Loading plugin: crashdetect
    [16:02:49]   Failed.

  5. #4
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Одна из причин: плагин отсутствует в папке plugins.

  6. Пользователь сказал cпасибо:
    Blood (07.01.2016)
  7. #5
    Аватар для Blood
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    69
    Репутация:
    2 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Одна из причин: плагин отсутствует в папке plugins.
    Плагин и инклуд есть .

  8. #6
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Blood Посмотреть сообщение
    Плагин и инклуд есть .
    Также, возможно, вы скачали плагин для GNU\linux (Архив: crashdetect-4.15.1-linux.tar.gz).

  9. Пользователь сказал cпасибо:
    Blood (07.01.2016)
  10. #7
    Аватар для Blood
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    69
    Репутация:
    2 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Также, возможно, вы скачали плагин для GNU\linux (Архив: crashdetect-4.15.1-linux.tar.gz).
    Нет все для виндовса .
    Исправил не работал из-за msvcp100.dll , msvcr100.dll , удалил их все работает .
    Спасибо всем за помощь .

  11. #8
    Аватар для DoN_SancheS
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.11.2016
    Сообщений
    64
    Репутация:
    0 ±
    А почему в последней версии нет CrashDetect.so ?

    и как вообще нужно правильно установить этот плагин,
    например куда нужно кинуть CrashDetect.pdb
    Последний раз редактировалось DoN_SancheS; 30.11.2016 в 23:20.

  12. #9
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от DoN_SancheS Посмотреть сообщение
    А почему в последней версии нет CrashDetect.so ?
    github
    есть тут всё...

    Цитата Сообщение от DoN_SancheS Посмотреть сообщение
    и как вообще нужно правильно установить этот плагин
    Просто закинуть в папку с плагинами и подключить в server.cfg его на первом месте среди других плагинов

    Цитата Сообщение от DoN_SancheS Посмотреть сообщение
    например куда нужно кинуть CrashDetect.pdb
    microsoft
    На сколько я понял этот файл не нужен для сервера sa:mp
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  13. Пользователь сказал cпасибо:
    DoN_SancheS (01.12.2016)
  14. #10
    Аватар для DoN_SancheS
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.11.2016
    Сообщений
    64
    Репутация:
    0 ±
    вы ответили на 2 вопросы (спасибо)
    но один вопрос всё же остался, либо я слепой либо у вас галлюцинации, в архиве win32.zip нет crashdetect.so он есть в архиве linux.tar.gz но разве можно взять от туда для виндовс?
    Последний раз редактировалось DoN_SancheS; 01.12.2016 в 18:08.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •