Jakie metody znacie na znalezienie oraz NAPRAWIENIE crasha, wiedząc który to plugin, mając jego source oraz widząc, ze plugin ma ponad 3k linijek ..
Ja dotąd używam metody "na diodę" ale szukam innego rozwiazania. Czekam na różne propozycje
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Metody szukania crashy
#1
Napisano 11.06.2014 19:46
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#2
Napisano 11.06.2014 20:40
Osobiście polecam dopisanie "debug" po pluginie w plugins.ini Tylko tego używam do szukania błędów i jeszcze nigdy nie potrzebowałem czegoś więcej do naprawy. Nie lubię pisać dodatkowego kodu na debugowanie wewnątrz pluginowe dlatego jedyne co w pluginie używam do debugu to:
• FM_Sys_Error
• FM_GameShutdown
• FM_ShouldCollide
Dodatkowo zapamiętaj momęt crash'a gdyż to bardzo ważna rzecz. Następnie przeglądając kod przeanalizuj jakie funkcje mogły się wtedy wykonywać. Polecam używanie fakemety (czasami wolę ją nawet od kanapeczki)
Co to za metoda "na diodę"?? Jeszcze się z tym nie spotkałem. Powiedz w jakim pluginie szukasz błędów które powodują crash'e a powiem ci czego zmienianie może do nich doprowadzić. Pozwól że strzelę z szansą trafienia 1 na (1/0). Na twoim miejscu użył bym EngFunc_GetInfoKeyBuffer. Pewnie się mylę ale może w końcu zaczyna mi wychodzić analizowanie ludzkości ;D
Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!
Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują
#3
Napisano 11.06.2014 20:45
Opisz dokładnie o co Chodzi w tych zmiennych i jak ich używać, metoda "na diodę" polega na przykład na tym:
log_to_file("td.txt","poszukaniutmosterends") new Float:szMax = float( get_pcvar_num(gCvarInfo[CVAR_BASE_HEALTH]) ) new Float:fDamage; new Float:fValue fDamage = float( get_pcvar_num(gCvarInfo[CVAR_MONSTER_DAMAGE])) log_to_file("td.txt","pocvarzetmosterends") if(e_RoundType:pev(monster, pev_monster_type) == ROUND_BOSS) fDamage = float( get_pcvar_num(gCvarInfo[CVAR_BOSS_DAMAGE])) log_to_file("td.txt","obrazeniatmosterends") giBaseHealth -= floatround(fDamage) log_to_file("td.txt","sprtmosterends")
I po prostu widzisz do której sytuacji doszło ostatnio i funkcja czy coś dalej na 99,9% powoduje crash
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#4
Napisano 11.06.2014 21:04
Rok temu ci ta funkcja działała a tu nagle bum i nie działa a przecież niczego nie zmieniłeś zatem o co chodzi?? Sprawdź milion razy czy poprawnie ustawiasz cvary i czy poprawnie pointer pobierasz
Poza tym możesz powiedziec kiedy ci ta dioda gaśnie/zapala się
Użytkownik BlackPerfum edytował ten post 11.06.2014 21:05
Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!
Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują
#5
Napisano 12.06.2014 07:00
Tzn ja podałem przykładowy kod, i nie chodzi o naprawę błędu, tylko jakie znacie najlepsze metody nt. wyszukiwania i zwalczania crashy poprzez plugin który ma 3k linijek
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#6
Napisano 12.06.2014 14:48
Dawalem log na poczatku i na koncu funkcji.
Potem jak byl crash to sprawdzalem godzine z godzina loga ktory sie zapisal.
Jak juz mialem funkcje ktora crashuje to naprawialem, ale nie zawsze to byla ta (moglbyc np blad w wywolaniu i wtedy nie zalogowalo wejscia do funckji (?))
#7
Napisano 12.06.2014 17:02
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#8
Napisano 12.06.2014 17:23
Kiedyś do tego zrobiłem malutki plugin, dołączam w załączniku. Można także skompilowac swój plugin z flagami: "-d3 -O0" //-O0 używaj tylko do debugowania gdyż ta flaga zapobiega optymalizacji kod'u a zarazem masz większe info o kodzie w czasie jego działania. Polecam także robić w pluginie dodatkowe funkcje z logowaniem które opierają się na predefiniowanej (przez pawn'a nie przez nas) stałej "debug" (przydaje się jeśli używasz parametru startowego -d3/-d2) Oczywiście nie chodzi mi o to by w każdej funkcji robić logi tylko w ważnych momętach (gdy czegoś nie jesteśmy pewni)
Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!
Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują
#9
Napisano 12.06.2014 20:30
"Brakuje miejsca na stosie", "Brakuje miejsca w stercie",
- Styrta się pali.
- Co się pali?
- Straż, ale nie gasi.
- Słucham?
- Styrta się dopala
Tak poza tym, ciekawe nazwy błędów, i + leci za pomysł na plugin(choć dawno napisany)
"Debugger niemoĹĽliwy do uruchomienia - no to kicha",
haha
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#10
Napisano 12.06.2014 20:50
Nudno było tak słuchać sztywnych tekstów dlatego je urozmaiciłem Od razu ma się wiecej energii do pisania ;D
Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!
Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują
#11
Napisano 13.06.2014 19:57
Gdzie się podziały wypowiedzi tych zaawansowanych ? czekam na inne propozycje. Dump
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#12
Napisano 16.06.2014 11:30
Napewno do swojego arsenału warto dodać https://forums.allie...ead.php?t=67752
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych