Mostrando postagens com marcador Pawn. Mostrar todas as postagens
Mostrando postagens com marcador Pawn. Mostrar todas as postagens

Configuração do plugin detector de crashs no seu servidor de samp

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