На нашем сайте вы найдете свежие новости мира Grand Theft Auto, а также все необходимое для игры в San Andreas Multiplayer
        3155
        прос

        Crashdetect v4.6

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

        Пример вылета сервера
        Предположим, что мы запускаем такой Gamemode:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        #include <a_samp>
         
        main() {
            function1();
        }
         
        function1() {
            function2();
        }
         
        function2() {
            new buf[10];
            fread(File:123, buf);
        }
        Когда дело дойдёт до function2(), сервер крашнет. Если сервер запущен под Os Windows, то в crashinfo.txt будет выведена нечитабельная запись

        Но с CrashDetect вы увидите следующее в логах сервера:
        Quote
        [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
        Что является более информативным. Вы также можете получить дополнительную информацию, такую как номера строк, имена функций, параметров и т.д.
        Quote
        [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

        Runtime error
        Run time errors как правило выводятся через сообщение "Run time error <error_code>: "Error details here"".

        Образец, вызывающий Runtime Error:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        public OnGameModeInit() {
            new bla[5];
         
            new fffuuuu = 0;
         
            fffuuuu = 100;
            bla[fffuuuu] = 100;
         
            return bla[fffuuuu];
        }
        Если вы планируете скомпилировать этот код в режиме отладки и запустить, выведет следующее:
        Quote
        [05:32:16] [debug] Run time error 4: "Array index out of bounds"
        [05:32:16] [debug] Accessing element at index 100 past array upper bound 4
        [05:32:16] [debug] Backtrace (most recent call first):
        [05:32:16] [debug] #0 00000084 in public OnGameModeInit () at bounds.pwn:11
        Если вы хотите, что бы сервер выключался после первой Runtime Error, установите значение "die_on_error" в файле server.cfg в 1

        Загрузить


        • Автор перевода: KempeR
        • Автор плагина: Zeex

        Форма входа
        SAMP Server
        топ файлов

        MTA Map Editor 1.3 и...



        [PLUG] MySQL



        Русская версия samp....



        [PLUG] Crash Detect



        [MAP] Интерьер медик...


        Статистика
        Онлайн всего: 1
        Гостей: 1
        Пользователей: 0
        Опрос
        Как Вам сайт?
        Всего ответов: 101