Resolvendo erros encontrados pelo crashdetect -
Locky_ - 25.09.2013
Olб, estou criando este tуpico com a intenзгo de ajudar pessoas que tem algumas 'duvidas' sobre o plugin crashdetect.
Este plugin, tem a funзгo de achar problemas em seu script, de diversas maneiras.
Mas, muitas das vezes ele ocorre de dizer no log o que vocк praticamente entende nada.
Um exemplo:
pawn Код:
[21/09/2013 17:56:11] [debug] Run time error 4: "Array index out of bounds"
[21/09/2013 17:56:11] [debug] Accessing element at negative index -1
[21/09/2013 17:56:11] [debug] AMX backtrace:
[21/09/2013 17:56:11] [debug] #0 00386c3c in ?? (0x00000041) from GM.amx
[21/09/2013 17:56:11] [debug] #1 0044f35c in ?? (0x00000041, 0x00000001) from GM.amx
[21/09/2013 17:56:11] [debug] #2 00363448 in public OnDialogResponse (0x00000041, 0x000002c1, 0x00000001, 0xffffffff, 0x00c3ae2c) from GM.amx
Deu б entender que o problema estб em uma
dialog. Mas como irei saber qual
dialog estб com o tal problema?
Hum, uma boa pergunta.
Entгo, andei pesquisando aqui e descobri uma coisa que funciona. Testei e atй arrumei problemas, e agora irei dar a dica.
Este
site, й um conversor.
Pergunta: Por que um conversor?
Resposta: Para achar as informaзхes descritas pelo crashdetect (OnDialogResponse (0x00000041, 0x000002c1, 0x00000001, 0xffffffff, 0x00c3ae2c)).
Primeiramente, vocк deve saber como й o funcionamento da tal callback.
Como muitos sabem (mais experientes) a
OnDialogResponse trabalha na ordem
(playerid, dialogid, response, listitem, inputtext[])
Entгo, os erros estгo relacionados nesta ordem
Entгo, iremos abrir o site e clicar na bolinha
Hexadecimal.
Com ela marcada, iremos colar os valores abaixo (um de cada vez):
0x00000041
0x000002c1
0x00000001
0xffffffff
0x00c3ae2c
Agora, os resultados mostrados em Decimais:
65
705
1
*
*
Agora vocк deve estar se perguntando.. Por que teve os 'asteriscos'
Simplesmente, por que jб achei a minha dialog, e no caso esta dialog 705 й uma DIALOG_STYLE_MSGBOX. (No meu gamemode), que no caso nгo possue listitem nem inputtext
Opa! Jб vimos que entгo tem um debug em
OnDialogResponse(playerid 65, dialogid 705, response 1, listitem, inputtext[])
Um script exemplo.
pawn Код:
#include a_samp
#include zcmd
public OnFilterScriptInit()
{
return 1;
}
new Exemplo1[5];
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 7777) {
if(!response) return 1;
Exemplo1[listitem] = 1;
printf("Exemplo 1 - listitem : %i", listitem);
return 1;
}
return 0;
}
CMD:exemplo1(playerid) return ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Exemplo", "1\n2\n3\n4\n5\n6\n7", "Ok", "Fechar");
Como no script acima, iremos chamar a dialog 7777, e 'Exemplo' tem 5 cells. Veja agora o log feito usando 1 listitem por vez.
pawn Код:
[25/09/2013 19:02:40] Filterscript 'exemplo.amx' loaded.
[25/09/2013 19:02:51] Exemplo 1 - listitem : 0
[25/09/2013 19:02:53] Exemplo 1 - listitem : 1
[25/09/2013 19:02:54] Exemplo 1 - listitem : 2
[25/09/2013 19:02:56] Exemplo 1 - listitem : 3
[25/09/2013 19:02:58] Exemplo 1 - listitem : 4
[25/09/2013 19:03:00] [debug] Run time error 4: "Array index out of bounds"
[25/09/2013 19:03:00] [debug] Accessing element at index 5 past array upper bound 4
[25/09/2013 19:03:00] [debug] AMX backtrace:
[25/09/2013 19:03:00] [debug] #0 00000578 in public OnDialogResponse (0x00000004, 0x00001e61, 0x00000001, 0x00000005, 0x0000041c) from exemplo.amx
[25/09/2013 19:03:02] [debug] Run time error 4: "Array index out of bounds"
[25/09/2013 19:03:02] [debug] Accessing element at index 6 past array upper bound 4
[25/09/2013 19:03:02] [debug] AMX backtrace:
[25/09/2013 19:03:02] [debug] #0 00000578 in public OnDialogResponse (0x00000004, 0x00001e61, 0x00000001, 0x00000006, 0x0000041c) from exemplo.amx
Viram os erros?
Traduzindo apenas os erros.
pawn Код:
erro 1: OnDialogResponse(4, 7777, 1, 5, inputtext[])
erro 2: OnDialogResponse(4, 7777, 1, 6, inputtext[])
Espero que tenham entendido o pequeno tutorial.
Provavelmente, isto nгo pode ser totalmente funcional.
Porйm assim deste modo funcionou corretamente.
Download do plugin crash detect:
Aqui
Listas de erro:
Aqui (
Traduzida) **
Re: Resolvendo erros encontrados pelo crashdetect -
WLSF - 25.09.2013
bem inovador, parabйns
Nгo lembro de termos algo assim aqui na board.
+2rep
Re: Resolvendo erros encontrados pelo crashdetect -
Locky_ - 25.09.2013
Quote:
Originally Posted by Willian_Luigi
bem inovador, parabйns
Nгo lembro de termos algo assim aqui na board.
+2rep
|
Obrigado.
Re: Resolvendo erros encontrados pelo crashdetect -
Juniiro3 - 25.09.2013
Esse nik й demais e.e
Re: Resolvendo erros encontrados pelo crashdetect -
Locky_ - 25.09.2013
Quote:
Originally Posted by Juniiro3
Esse nik й demais e.e
|
tamos ae
Re: Resolvendo erros encontrados pelo crashdetect -
silenthill - 25.09.2013
Уtimo
Re: Resolvendo erros encontrados pelo crashdetect -
Locky_ - 25.09.2013
Quote:
Originally Posted by silenthill
Уtimo
|
Thanks
Re: Resolvendo erros encontrados pelo crashdetect -
PT - 25.09.2013
Bom trabalho, algo revolucionбrio neste forum penso eu, pelo menos ainda n vi nd ligado a isto aqui
+rep
Re: Resolvendo erros encontrados pelo crashdetect -
Locky_ - 25.09.2013
Quote:
Originally Posted by PT
Bom trabalho, algo revolucionбrio neste forum penso eu, pelo menos ainda n vi nd ligado a isto aqui
+rep
|
Obrigado!
Re: Resolvendo erros encontrados pelo crashdetect -
Caio_Freeze - 26.09.2013
instalei o plugin pa suave ai quando entrei ele tem um bug que quando loga vc nasce morto '-' ainda n sei como resolve e ele detecto na public onplayerdeath
pawn Код:
[21:18:16] [debug] Run time error 4: "Array index out of bounds"
[21:18:16] [debug] Accessing element at index 65535 past array upper bound 9
[21:18:16] [debug] AMX backtrace:
[21:18:16] [debug] #0 0000d7a4 in public OnPlayerDeath (0x00000000, 0x0000ffff, 0x000000ff) from GM-GANG.amx
[21:18:16] [death] Caio_Cold died 255
entrei no site da cauculadora e obtive esses resultados:
(playerid) 0x00000000: 0
(killerid) 0x0000ffff: 65535
(reason) 0x000000ff: 255
ai nгo entendi a parte do debug :/