Portal SAMP
[Ajuda] Debug - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Debug (/showthread.php?tid=3542)



Debug - Daniell_Samp - 21/04/2023

ola manos tubo bom ? entao eu estava criando um sistema de org na minha gm ate entao tava indo tudo certo , mas comecou ocorrer um problema  que o meu sampserver.exe fecha na hora q eu entro no serv , instalei o plugin crashdetect para saber do erro e ele aparece isso , se puderem me ajudar fico agradecido Heart



[15:56:55] Number of vehicle models: 0
[15:57:18] [connection] 127.0.0.1:55879 requests connection cookie.
[15:57:19] [connection] incoming connection: 127.0.0.1:55879 id: 0
[15:57:19] [join] Guaxinim_ has joined the server (0:127.0.0.1)
[15:57:20] [debug] Server crashed while executing GmBase.amx
[15:57:20] [debug] AMX backtrace:
[15:57:20] [debug] #0 native fclose () in samp-server.exe
[15:57:20] [debug] #1 0000729c in DOF2_CreateFile (file[]=@00077a14 "Contas/", password[]=@00037af0 "") at C:\Program Files (x86)\Rockstar Games\anexo-rpg\pawno\include\DOF2.inc:277
[15:57:20] [debug] #2 0000fb48 in public OnPlayerUpdate (playerid=0) at C:\Program Files (x86)\Rockstar Games\anexo-rpg\gamemodes\GmBase.pwn:346
[15:57:20] [debug] Native backtrace:
[15:57:20] [debug] #0 0049939b in ?? () in samp-server.exe
[15:57:20] [debug] #1 004056cd in ?? () in samp-server.exe
[15:57:20] [debug] #2 66180e9e in ?? () in plugins\crashdetect.DLL
[15:57:20] [debug] #3 66187d02 in ?? () in plugins\crashdetect.DLL
[15:57:20] [debug] #4 661789f5 in ?? () in plugins\crashdetect.DLL
[15:57:20] [debug] #5 66180f0c in ?? () in plugins\crashdetect.DLL
[15:57:20] [debug] #6 65f33484 in ?? () in plugins\streamer.DLL
[15:57:20] [debug] #7 0046e8d0 in ?? () in samp-server.exe
[15:57:20] [debug] #8 0048f6ab in ?? () in samp-server.exe
[15:57:20] [debug] #9 77b3be5f in ?? () in C:\Windows\SYSTEM32\ntdll.dll
[15:57:20] [debug] #10 77b3be5f in ?? () in C:\Windows\SYSTEM32\ntdll.dll
[15:57:20] [debug] #11 77b3bcec in ?? () in C:\Windows\SYSTEM32\ntdll.dll
[15:57:20] [debug] #12 00498e11 in ?? () in samp-server.exe
[15:57:20] [debug] #13 00498e16 in ?? () in samp-server.exe
[15:57:20] [debug] Registers:
[15:57:20] [debug] EAX: 0019f9e4 EBX: 0064eebc ECX: 00000000 EDX: 004056c0
[15:57:20] [debug] ESI: 00000000 EDI: 0000000e EBP: 0019f9f4 ESP: 0019f9cc
[15:57:20] [debug] EIP: 0049939b EFLAGS: 00010286
[15:57:20] [debug] Stack:
[15:57:20] [debug] ESP+00000000: 0000000e 02807700 0064eebc ffffffff
[15:57:20] [debug] ESP+00000020: 004ba1b8 ffffffff 0019fb38 004056cd
[15:57:20] [debug] ESP+00000040: 02807700 66178721 02807700 0000000e
[15:57:20] [debug] ESP+00000060: 02807700 000779f4 c0000139 02807700
[15:57:20] [debug] ESP+00000080: 66166a1f 006379b0 00000000 0019fab8
[15:57:20] [debug] ESP+000000a0: 00000000 00000000 00629c10 006379b0
[15:57:20] [debug] ESP+000000c0: 0019fdf0 661b65cd ffffffff 0019faac
[15:57:20] [debug] ESP+000000e0: 0019fac8 66188aa7 02807700 00000019
[15:57:20] [debug] ESP+00000100: 661880b9 02807700 00000019 0019fc04
[15:57:20] [debug] ESP+00000120: 66162130 0063a0d0 00011c7c 661e1028
[15:57:20] [debug] ESP+00000140: 00000000 00000001 02807700 00000000
[15:57:20] [debug] ESP+00000160: 0019fdf0 661b6539 ffffffff 0019fb4c
[15:57:20] [debug] ESP+00000180: 0019fbbc 66187d02 02807700 0000000e
[15:57:20] [debug] ESP+000001a0: 02807700 66162130 000779fc 00011c7c
[15:57:20] [debug] ESP+000001c0: 00000000 66162cca 03684b84 00037af0
[15:57:20] [debug] ESP+000001e0: 0368be20 00000000 00037af4 000779f4
[15:57:20] [debug] ESP+00000200: 0000001d 0000001d 02807700 00000001
[15:57:20] [debug] ESP+00000220: 0040174f 02807700 0000001d 02807700
[15:57:20] [debug] ESP+00000240: 6ef17c4f 6ef17c4b 0019fc28 65f391e1
[15:57:20] [debug] ESP+00000260: 0000001d 02807700 0019fc54 65f33484
[15:57:20] [debug] ESP+00000280: 02807700 029a50d8 02807700 0046e8d0
[15:57:20] [debug] ESP+000002a0: 00000000 021a9c50 00000001 0000001d
[15:57:20] [debug] ESP+000002c0: 02775770 00000000 cf19fdf4 00000000
[15:57:20] [debug] ESP+000002e0: 00003c82 00000000 f7ba0000 0064bf7f
[15:57:20] [debug] ESP+00000300: 00000000 00000000 00000000 80e804a5
[15:57:20] [debug] ESP+00000320: 00000000 021a0c08 6f6e6e61 65636e75
[15:57:20] [debug] ESP+00000340: 0019fda8 7ffe6000 ffffffff 77b3be5f
[15:57:20] [debug] ESP+00000360: 00000000 00000000 7ca5054f 0019fdac
[15:57:20] [debug] ESP+00000380: 021a0000 00000000 ffffffff ffffffff
[15:57:20] [debug] ESP+000003a0: 00000000 021a78c0 00000018 00000000
[15:57:20] [debug] ESP+000003c0: 021a0000 762430d0 0019fdb0 77b23c16
[15:57:20] [debug] ESP+000003e0: 027757f0 0019fdec 00498e11 021a0000
[15:57:20] [debug] Loaded modules:
[15:57:20] [debug] 00400000 - 00519000 samp-server.exe
[15:57:20] [debug] 77ae0000 - 77c83000 ntdll.dll
[15:57:20] [debug] 76220000 - 76310000 KERNEL32.DLL
[15:57:20] [debug] 77380000 - 77595000 KERNELBASE.dll
[15:57:20] [debug] 76820000 - 76dd3000 SHELL32.dll
[15:57:20] [debug] 75a40000 - 75abb000 msvcp_win.dll
[15:57:20] [debug] 75de0000 - 75f00000 ucrtbase.dll
[15:57:20] [debug] 76000000 - 761a0000 USER32.dll
[15:57:20] [debug] 77aa0000 - 77ab8000 win32u.dll
[15:57:20] [debug] 75ac0000 - 75ae4000 GDI32.dll
[15:57:20] [debug] 75f00000 - 75fdc000 gdi32full.dll
[15:57:20] [debug] 75980000 - 75988000 WSOCK32.dll
[15:57:20] [debug] 76400000 - 764bf000 msvcrt.dll
[15:57:20] [debug] 779a0000 - 77a03000 WS2_32.dll
[15:57:20] [debug] 778b0000 - 7796f000 RPCRT4.dll
[15:57:20] [debug] 73a50000 - 73a78000 WINMM.dll
[15:57:20] [debug] 77970000 - 77995000 IMM32.DLL
[15:57:20] [debug] 66160000 - 661e9000 crashdetect.DLL
[15:57:20] [debug] 660e0000 - 66151000 MSVCP120.dll
[15:57:20] [debug] 65ff0000 - 660de000 MSVCR120.dll
[15:57:20] [debug] 65f30000 - 65f97000 streamer.DLL
[15:57:20] [debug] 65cf0000 - 65d5d000 MSVCP140.dll
[15:57:20] [debug] 6e500000 - 6e515000 VCRUNTIME140.dll
[15:57:20] [debug] 10000000 - 1000e000 sscanf.DLL
[15:57:20] [debug] 75710000 - 75762000 mswsock.dll
[15:57:20] [debug] 70b00000 - 70b11000 napinsp.dll
[15:57:20] [debug] 76ec0000 - 76f35000 sechost.dll
[15:57:20] [debug] 70ae0000 - 70af6000 pnrpnsp.dll
[15:57:20] [debug] 70ad0000 - 70ae0000 wshbth.dll
[15:57:20] [debug] 70ab0000 - 70ac6000 NLAapi.dll
[15:57:20] [debug] 74fd0000 - 75002000 IPHLPAPI.DLL
[15:57:20] [debug] 75010000 - 750a1000 DNSAPI.dll
[15:57:20] [debug] 77ac0000 - 77ac7000 NSI.dll
[15:57:20] [debug] 70aa0000 - 70aae000 winrnr.dll
[15:57:20] [debug] 74f70000 - 74fc8000 fwpuclnt.dll
[15:57:20] [debug] 75fe0000 - 75ff9000 bcrypt.dll
[15:57:20] [debug] 74f60000 - 74f68000 rasadhlp.dll
[15:57:20] [debug] 76550000 - 765af000 bcryptPrimitives.dll


RE: Debug - xbruno1000x - 21/04/2023

Citar:#2 0000fb48 in public OnPlayerUpdate (playerid=0) at C:\Program Files (x86)\Rockstar Games\anexo-rpg\gamemodes\GmBase.pwn:346

O que há na linha 346 do gamemode?


RE: Debug - Daniell_Samp - 21/04/2023

(21/04/2023 16:13)xbruno1000x Escreveu:
Citar:#2 0000fb48 in public OnPlayerUpdate (playerid=0) at C:\Program Files (x86)\Rockstar Games\anexo-rpg\gamemodes\GmBase.pwn:346

O que há na linha 346 do gamemode?

peço perdao pois agr q percebi q criei o topico no local errado irei mandar a print dessa linha agr mesmo

e ai manin sabe como eu resolvo esse problema ?


RE: Debug - Carlos Victor - 21/04/2023

Primeiramente, você está fazendo um papelão em colocar essa coisa na OnPlayerUpdate, uma callback que é constantemente chamada, em média 30 vezes por segundo, podendo causar um grande lag em seu servidor e alto consumo de processamento, para evitar esse problema aí, melhor criar um timer ou então, tirar isso daí e salvar a organização quando o jogador receber TAG ou quando ele desconectar.


RE: Debug - Daniell_Samp - 21/04/2023

(21/04/2023 20:31)Carlos Victor Escreveu: Primeiramente, você está fazendo um papelão em colocar essa coisa na OnPlayerUpdate, uma callback que é constantemente chamada, em média 30 vezes por segundo, podendo causar um grande lag em seu servidor e alto consumo de processamento, para evitar esse problema aí, melhor criar um timer ou então, tirar isso daí e salvar a organização quando o jogador receber TAG ou quando ele desconectar.

n consegui compreeender ;-; tem outra public pra fazer isso ?


RE: Debug - White_Blue - 21/04/2023

(21/04/2023 22:10)Daniell_Samp Escreveu:
(21/04/2023 20:31)Carlos Victor Escreveu: Primeiramente, você está fazendo um papelão em colocar essa coisa na OnPlayerUpdate, uma callback que é constantemente chamada, em média 30 vezes por segundo, podendo causar um grande lag em seu servidor e alto consumo de processamento, para evitar esse problema aí, melhor criar um timer ou então, tirar isso daí e salvar a organização quando o jogador receber TAG ou quando ele desconectar.

n consegui compreeender ;-; tem outra public pra fazer isso ?

Se você está salvando na callback OnPlayerUpdate, tire imediatamente. A OnPlayerUpdate é chamada milhares de vezes durante a execução do programa, causando graves problemas de performance. Para salvar, você pode simplesmente criar duas funções para salvar os dados quando o player desconectar na OnPlayerDisconnect e carregar os dados na OnPlayerSpawn.
Ou criar um timer que faça o salvamento em X segundos.

Exemplo usando timer:
Código PHP:
new _TimerSave[MAX_PLAYERS] = 0;

forward SaveData(playerid);
public 
SaveData(playerid) {
     
// Código do salvamento aqui
     
return 1;
}

public 
OnPlayerSpawn(playerid) {
       
_TimerSave[playerid] = SetTimerEx("SaveData"5000true"i"playerid); // Executa o código dentro da callback "SaveData" à cada 5 segundos...
       
return 1;
}

public 
OnPlayerDisconnect(playeridreason) {
       
KillTimer(_TimerSave[playerid]);
       return 
1;


Exemplo salvando o jogador ao desconectar e carregando os dados quando ele conectar:
Código PHP:
stock SaveData(playerid) {
     
// Código do salvamento aqui
     
return 1;
}

stock LoadData(playerid) {
     
// Código do carregamento de dados aqui
     
return 1;
}

public 
OnPlayerSpawn(playerid) {
      
LoadData(playerid);
      return 
1;
}

public 
OnPlayerDisconnect(playeridreason) {
       
SaveData(playerid);
       return 
1;




RE: Debug - xbruno1000x - 22/04/2023

Como o White_Blue falou, o ideal mesmo é que você realize o salvamento em momentos específicos. Colocando um salvamento na OnPlayerUpdate você estará gastando mais processamento que o necessário.


RE: Debug - Daniell_Samp - 22/04/2023

(21/04/2023 23:41)White_Blue Escreveu:
(21/04/2023 22:10)Daniell_Samp Escreveu:
(21/04/2023 20:31)Carlos Victor Escreveu: Primeiramente, você está fazendo um papelão em colocar essa coisa na OnPlayerUpdate, uma callback que é constantemente chamada, em média 30 vezes por segundo, podendo causar um grande lag em seu servidor e alto consumo de processamento, para evitar esse problema aí, melhor criar um timer ou então, tirar isso daí e salvar a organização quando o jogador receber TAG ou quando ele desconectar.

n consegui compreeender ;-; tem outra public pra fazer isso ?

Se você está salvando na callback OnPlayerUpdate, tire imediatamente. A OnPlayerUpdate é chamada milhares de vezes durante a execução do programa, causando graves problemas de performance. Para salvar, você pode simplesmente criar duas funções para salvar os dados quando o player desconectar na OnPlayerDisconnect e carregar os dados na OnPlayerSpawn.
Ou criar um timer que faça o salvamento em X segundos.

Exemplo usando timer:
Código PHP:
new _TimerSave[MAX_PLAYERS] = 0;

forward SaveData(playerid);
public 
SaveData(playerid) {
     // Código do salvamento aqui
     return 1;
}

public 
OnPlayerSpawn(playerid) {
       _TimerSave[playerid] = SetTimerEx("SaveData"5000true"i"playerid); // Executa o código dentro da callback "SaveData" à cada 5 segundos...
       return 1;
}

public 
OnPlayerDisconnect(playeridreason) {
       KillTimer(_TimerSave[playerid]);
       return 1;


Exemplo salvando o jogador ao desconectar e carregando os dados quando ele conectar:
Código PHP:
stock SaveData(playerid) {
     // Código do salvamento aqui
     return 1;
}

stock LoadData(playerid) {
     // Código do carregamento de dados aqui
     return 1;
}

public 
OnPlayerSpawn(playerid) {
      LoadData(playerid);
      return 1;
}

public 
OnPlayerDisconnect(playeridreason) {
       SaveData(playerid);
       return 1;

beleza mano vou esta fazendo isso