plugins Crash Detect v4.10
Данный плагин вывод в лог сервера ошибки во время работы сервера. Это помогает найти в какой конкретно функции баг, вызывающий краш сервера или переполнение памяти.
Пример вылета сервера
Предположим, что мы запускает такой Gamemode:
Код
#include <a_samp>
main() {
function1();
}
function1() {
function2();
}
function2() {
new buf[10];
fread(File:123, buf);
}
Когда дело дойдёт до function2(), сервер крашнет. Если сервер запущен под Os Windows, то в crashinfo.txt будет выведена нечитабельная запись
Но с CrashDetect вы увидите следующее в логах сервера:
Код
[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
Что является более информативным. Вы также можете получить дополнительную информацию, такую как номера строк, имена функций, параметров и т.д.
Код
[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 details here"".
Образец, вызывающий Runtime Error:
Код
public OnGameModeInit() {
new bla[5];
new fffuuuu = 0;
fffuuuu = 100;
bla[fffuuuu] = 100;
return bla[fffuuuu];
}
Если вы планируете скомпилировать этот код в режиме отладки и запустить, выведет следующее:
Код
[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
Скачать:
Код
Скачать плагин для win and linux
Автор плагина: Zeex