[Include] vDebug - Sistema de debug
#1

vDebug 0.2
Descriзгo:

vDebug й um simples sistema que ajuda em caso de crash.




Funcionamento:

Ele registra em um arquivo a ъltima funзгo verificada executada, assim, tornando a tarefa de encontrar o script que causa crash melhor.




Instalaзгo:

1 - Salve como vDebug.inc em sua pasta de includes.
2 - Coloque no topo de seu script "#include <vDebug>"
3 - Coloque o plugin_vDebug.dll na pasta plugins.
4 - Adicione ao server.cfg na linha "plugins" "plugin_vDebug"




Download include:

-pastebin- - vDebug 0.1
-pastebin- - vDebug 0.2

vDebug.inc
pawn Code:
##if defined ___vDBG_included___
    #error ___vDBG_included___ ja esta definido! usando a include 2 vezes no mesmo script?
#endif

#define ___vDBG_included___

#if !defined _samp_included
    #include a_samp
#endif

#pragma library "plugin_vDebug"

#define CDebug::%0(%1)  forward CDebug_%0(%1); \
                        public CDebug_%0(%1)
                       
#define cDebug->%0(%1)  CDebug_%0(%1)

#define FALSE 0
#define TRUE  1

native plugin_MarcarUltimaFuncao(const funcao[]);
native plugin_LerUltimaFuncao(const str[]);

enum eDebug
{
    DebugUF[64],
}

static vDebug[eDebug];

CDebug::MarcarUltimaFuncao(const vDebug_funcao[])
{
    format(vDebug[DebugUF], 64, "\0");
   
#if defined vDBG_PrintTimeStamps

    static vDebug_hora, vDebug_minuto, vDebug_segundo, vDebug_ano, vDebug_mes, vDebug_dia;

    gettime(vDebug_hora, vDebug_minuto, vDebug_segundo);
    getdate(vDebug_ano, vDebug_mes, vDebug_dia);
   
    format(vDebug[DebugUF], 64, "[%i-%i-%i . %i/%i/%i] %s",
                                vDebug_hora, vDebug_minuto, vDebug_segundo, vDebug_ano,
                                vDebug_mes, vDebug_dia, vDebug_funcao);
                               
    return plugin_MarcarUltimaFuncao(vDebug[DebugUF]);
#else
    return plugin_MarcarUltimaFuncao(vDebug_funcao);

#endif
}

CDebug::LerUltimaFuncao(const vDebug_str[])
    return plugin_LerUltimaFuncao(vDebug_str);
Exemplo de uso:
pawn Code:
// Exemplo
public OnFilterScriptInit()
{
    cDebug->MarcarUltimaFuncao("OnFilterScriptInit()");
    static vDebug_ReadStr[64];

    cDebug->LerUltimaFuncao(vDebug_ReadStr);

    printf("%s", vDebug_ReadStr);
    return TRUE;
}
Download plugin [windows]:

plugin_vDebug.dll

Source + bin (30.6kb | .rar): http://minus.com/l34In9wqpzhOV
Bin (39.0kb | .dll): http://minus.com/l34In9wqpzhOV




Cangelog:
Code:
0.2 - Include atualizada.
0.2 - Plugin adicionado.


Crйditos:
- A mim - plugin e include
- SA:MP Team - plugin SDK
- Kyosaur - tutorial de plugins (https://sampforum.blast.hk/showthread.php?tid=295798)




NOTA: Versгo em desenvolvimento!
NOTA2: Quaisquer bugs podem postar
NOTA3: Nгo consigo achar tutoriais para compilar para linux, se souberem de algum por favor indiquem
Reply
#2

muito bom, parabйns,vou testar aqui...
ganhou meu +
Reply
#3

Gostei cara...
+ rep ^^

Reply
#4

Muito Bom mesmo

+
Reply
#5

No exemplo, ele irб marcar a funзгo OnFilterScriptInit, se apуs marcar o servidor crashar.
ai aparecerб "OnFilterScriptInit" ou irб aparecer o nome da funзгo que crashou o servidor?
Reply
#6

pawn Code:
return TRUE; = return true;
...
nao necessita de
pawn Code:
#define TRUE 1
isso sу vai atrasar na hora de compilar...assim como outros #define que voce ussou, mas tudo bem,
o codigo bem estruturado, parabens

no exemplo voce deveria mencionar que й importante colocar debug no inicio da callback e no fim, porque й uma maneira de ter maior certeza que й dentro dela

e eu achei isso meio estranho
pawn Code:
LerUltimaFuncao
o que й que ela faz mesmo ?
Reply
#7

Ficou bom, parabйns, creio que ajudarб muitos
Reply
#8

Quote:
Originally Posted by [Full]Garfield[XDB]
View Post
No exemplo, ele irб marcar a funзгo OnFilterScriptInit, se apуs marcar o servidor crashar.
ai aparecerб "OnFilterScriptInit" ou irб aparecer o nome da funзгo que crashou o servidor?
Isso vai depender da sua implementaзгo, aparentemente.
Reply
#9

Quote:
Originally Posted by [Full]Garfield[XDB]
View Post
No exemplo, ele irб marcar a funзгo OnFilterScriptInit, se apуs marcar o servidor crashar.
ai aparecerб "OnFilterScriptInit" ou irб aparecer o nome da funзгo que crashou o servidor?
Irб aparecer o que voce colocou para registrar.


Quote:
Originally Posted by DJloko
View Post
pawn Code:
return TRUE; = return true;
...
nao necessita de
pawn Code:
#define TRUE 1
isso sу vai atrasar na hora de compilar...assim como outros #define que voce ussou, mas tudo bem,
o codigo bem estruturado, parabens

no exemplo voce deveria mencionar que й importante colocar debug no inicio da callback e no fim, porque й uma maneira de ter maior certeza que й dentro dela

e eu achei isso meio estranho
pawn Code:
LerUltimaFuncao
o que й que ela faz mesmo ?
Nao й questгo de necessidade... e sim de organizaзгo para tornar o cуdigo mais organizado


LerUltimaFuncao armazena em uma variбvel a ъltima funзгo registrada lendo o arquivo.


# Versгo 0.2 vou fazer por plugin
Reply
#10

Tambйm nгo sei pra que criar uma define...
Reply
#11

vejo que voзe tem poucos topicos voзe e um exemplo de pessoa que nao espera na mao procura e aprende parabens e um + rep para voзe (obs seus topicos tem um console remoto impressionante parabens).
Reply
#12

bombom.
Reply
#13

pawn Код:
#define FALSE 0
#define TRUE 1
Nгo precisa disso, basta usar assim que й a mesma coisa:
pawn Код:
return false;
return true;
Reply
#14

Quote:
Originally Posted by AFerreira
Посмотреть сообщение
pawn Код:
#define FALSE 0
#define TRUE 1
Nгo precisa disso, basta usar assim que й a mesma coisa:
pawn Код:
return false;
return true;
Eu sei... Coloquei sу para caso retirarem os crйditos.



########### EDIT ############

Versгo 0.2 lanзada!
Reply
#15

Nгo achei muito convencional isso... Como disse o Gonзalo o CrashDetect й muito mais convencional pois vc nгo precisa declarar nada, alem das informaзхes serem sempre corretas...

Mas Parabйns pelo Feito!!
Reply
#16

й eu acho o CrashDetect Muito Prestativo
Mais Por outro lado tb Caso ele me decepcione eu tentaria esse
Mais Plugins e uma coisa bem dificiu Parabens!
Reply
#17

ta dando erro na pagina do downlooad das plugins.
Reply
#18

muito bom cara, uma duvida, como voce cria esses arquivos .dll? й do pawn?
Reply
#19

Quote:
Originally Posted by Freak@
Посмотреть сообщение
ta dando erro na pagina do downlooad das plugins.
Estou tendo problemas com os arquivos hospedados no minus.com e formatei o computador entгo estou sem o source code para poder recompilar os binбrios.

Quote:
Originally Posted by gR92
Посмотреть сообщение
muito bom cara, uma duvida, como voce cria esses arquivos .dll? й do pawn?
Visual Studio C++
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)