Esse plugin ajuda você fazendo depuração em tempo de execução quando uma função é executada ele rastreia ela e imprime informações de depuração que vão ajudar você a resolver os problemas de travamento no seu servidor.
Já não é a primeira vez que vejo as pessoas ficarem perdidas porque o servidor SA-MP crasha ou acontece alguma alteração que fizeram no script dá erro durante a execução por exemplo: em um comando dar a mensagem SERVER: Unknown command quando na verdade o comando existe.
Quando ocorre algum erro no seu script ou o seu servidor crasha, informações adicionais geradas pelo CrashDetect serão apresentadas no console remoto e adicionadas ao seu server_log que poderá auxiliar na descoberta da causa do problema, e posteriormente a sua resolução.
Para além de você ter de colocar o plugin na pasta plugins do seu servidor e adicionar o crashdetect na linha plugins do seu server.cfg você precisa fazer mais uma coisa, você precisa configurar o compilador pawn para o seu gamemode para que ele possa dar mais informaзхes úteis ao crashdetect, na sua pasta pawno crie um arquivo chamado pawn.cfg com a seguinte linha -r -O0 -d3
Compile o seu GameMode novamente e em seguida abra o servidor espere até o servidor crashar caso seja esse o seu caso ou execute o comando que tem o erro caso seja esse o seu caso
Caso nenhum .xml tenha sido criado na pasta dos gamemodes é porque por algum motivo o compilador pawn continua sem compilar no modo de depuração se você não está a usando o Pawno terá que configurar o seu editor de Pawn IDE para passar o parвmetro flag -d3 para o compilador Pawn
Pelos sublinhados de cor vermelha, o crash detect dá informações bastante úteis, como por exemplo a linha onde ocorreu o erro a função chamada de retorno onde ocorre o erro public cmd_idcarro a função criada pelo zcmd devido ao comando cmd idcarro e etc.
Essa mensagem sempre vai aparecer ao compilar no modo de depuração você não precisa se preocupar
Header size: 14904 bytes
Code size: 2547064 bytes
Data size: 20795764 bytes
Stack/heap size: 16384 bytes; estimated max. usage: 1234 cells
Total requirements: 23374116 bytes
Construindo instruções no linux:
Instalar gcc, g++
sudo apt-get install gcc g++ make cmake
Se você estiver construindo em um sistema de 64 bits vai preciar de um pacote multilib para o gcc e g++
Se você estiver constuindo no CentOS instale o seguinte pacote
yum install gcc gcc-c++ cmake28 make
Agora você estara pronto para construir o detector de crash
cd crashdetect
mkdir build && cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF
make
No server.cfg trace 'flags' ativa o rastreamento das suas funções nas chamads de retorno.
Quando ativado o detector de crash mostrará todas as informações sobre cada chamada de função em todos os scripts em execução, como o nome da função que está sendo chamada e os valores de seus parâmetros.
Use flags + a função que você quer rastrear tipo flags n só vai rastrear as funções nativas flags npf funções nativas funções publicas e funções normais.
trace_filter 'regexp' filtra a saída do rastreamento com base em uma expressão regular exemplo trace_filter Player faz ele rastrear todas as funções que contem o nome Player, trace_filter playerid=0 faz ele filtrar as funções com o parâmetro playerid 0
https://github.com/Zeex/samp-plugin-crashdetect