Debug Fehler - Wo steckt da der fehler?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,


    ich bekomme öfters mal diesen Debug-Error:



    Code
    [16:58:21] [debug] Run time error 4: "Array index out of bounds"
    [16:58:21] [debug]  Accessing element at index 467 past array upper bound 301
    [16:58:21] [debug] AMX backtrace:
    [16:58:21] [debug] #0 0003cfa4 in public Itter_OnPlayerDisconnect () from German-Elite-Reallife.amx
    [16:58:21] [debug] #1 000081fc in ?? () from German-Elite-Reallife.amx
    [16:58:21] [debug] #2 00007970 in public OnPlayerDisconnect () from German-Elite-Reallife.amx

    Wo ist da der fehler?

  • Das ist die einzige Variable mit 302


    new gLastDriver[302];


    Sollte ich die ändern?


    //Edit:


    Komischweise bekomme ich gerade sehr viele Errors:


    2 Mal editiert, zuletzt von Shoxx ()

  • Ja, diese erhöhen.


    Zwecks den anderen Fehlern:
    Erstelle in deinem /pawno/ Ordner eine Datei "pawn.cfg" und schreibe dort "-d3" (ohne Anführungszeichen) rein.
    Dann kompiliere deinen Code erneut und lasse dir die Fehler im Server Log wieder ausgeben. Dann siehst du neben den Fehlern die Zeilenangabe im Code, in der der Fehler generiert wird.

  • Okay Jeffry habe ich jetzt mal gemacht:


    Nun habe ich das im Server-Log stehen:


  • In der Zeile 11572 greifst du, ohne abzufragen ob killerid INVALID_PLAYER_ID ist auf ein Array zu.
    Füge dort
    if(killerid != INVALID_PLAYER_ID) zuvor ein.


    Die anderen Fehler scheinen in einer oder mehreren Includes zu liegen.
    Hast du die Meldung mit den vielen Zahlen auch im Compiler, wenn du die pawn.cfg Datei entfernst?

  • if(!IsACop(killerid) && !IsAHitman(killerid) && !IsPlayerInArea(killerid, 1060.145,-1721.339,1166.624,-1583.168) && !IsPlayerInArea(killerid, 990.2909,1821.38,1177.724,2057.332) && !IsPlayerInArea(killerid, -887.5186,1377.989,-583.8938,1634.903) && !IsPlayerInArea(killerid, -2506.7,740.0255,-2383.094,826.8147) && !IsPlayerInArea(killerid, -1850.044,1438.284,-1710.987,1584.248) && !IsPlayerInArea(killerid, -1891.4263,857.8361,-1722.0261,1095.5897)&& !IsPlayerInArea(killerid, 1828.318,-1938.465,2071.699,-1760.817) && !IsPlayerInArea(killerid, 1828.0573,-2161.2705,1956.4136,-2057.7964) && !IsPlayerInArea(killerid, 906.7744,-1561.5994,807.6274,-1416.7367)){WantedLevel[killerid]+=2;SetPlayerCriminal(killerid,255,"Vorsätzlicher Mord");}


    Zeile 11572 ist WantedLevel[killerid]+=2;


    Mein Compiler spuckt mir immer das aus:


    Code
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    Header size:          17456 bytes
    Code size:          3999136 bytes
    Data size:         31183212 bytes
    Stack/heap size:      32768 bytes; estimated max. usage: unknown, due to recursion
    Total requirements:35232572 bytes


    //Edit:


    Hab das jetzt mal so gemacht:

    if(killerid != INVALID_PLAYER_ID)
    {
    if(!IsACop(killerid) && !IsAHitman(killerid)
    && !IsPlayerInArea(killerid, 1060.145,-1721.339,1166.624,-1583.168)
    && !IsPlayerInArea(killerid, 990.2909,1821.38,1177.724,2057.332)
    && !IsPlayerInArea(killerid, -887.5186,1377.989,-583.8938,1634.903)
    && !IsPlayerInArea(killerid, -2506.7,740.0255,-2383.094,826.8147)
    && !IsPlayerInArea(killerid, -1850.044,1438.284,-1710.987,1584.248)
    && !IsPlayerInArea(killerid, -1891.4263,857.8361,-1722.0261,1095.5897)
    && !IsPlayerInArea(killerid, 1828.318,-1938.465,2071.699,-1760.817)
    && !IsPlayerInArea(killerid, 1828.0573,-2161.2705,1956.4136,-2057.7964)
    && !IsPlayerInArea(killerid, 906.7744,-1561.5994,807.6274,-1416.7367))
    {
    WantedLevel[killerid]+=2;
    SetPlayerCriminal(killerid,255,"Vorsätzlicher Mord");
    }
    }


    Leider bekomme ich trotzdem diese Fehler und der User kann sich nicht einloggen und hängt am Bot:


    Und 11701 ist jetzt das: killerteam = gTeam[killerid];

    3 Mal editiert, zuletzt von Shoxx ()

  • Hab den Code geändert.


    Und ja, mein Compiler zeigt das immer an:


    Code
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    Header size:          17456 bytes
    Code size:          3167428 bytes
    Data size:         31183212 bytes
    Stack/heap size:      32768 bytes; estimated max. usage: unknown, due to recursion
    Total requirements:34400864 bytes
  • Komischerweise bekomme ich ständig irgendwelche Debug Errors:


    Code
    [18:53:42] [debug] Run time error 4: "Array index out of bounds"
    [18:53:42] [debug]  Accessing element at index 65535 past array upper bound 999
    [18:53:42] [debug] AMX backtrace:
    [18:53:42] [debug] #0 00038664 in public OnPlayerDeath () from German-Elite-Reallife.amx
    [18:53:42] [death] MySquare died 54
    [18:53:42] [debug] Run time error 4: "Array index out of bounds"
    [18:53:42] [debug]  Accessing element at index 65535 past array upper bound 999
    [18:53:42] [debug] AMX backtrace:
    [18:53:42] [debug] #0 000031dc in ?? () from German-Elite-Reallife.amx
    [18:53:42] [debug] #1 002ade04 in public OnDialogResponse () from German-Elite-Reallife.amx

    Das Problem ist, dass ich das auf meinem Hauptserver nur im Server_log auslesen kann.

  • Erstelle die pawn.cfg wieder (du wirst dann wieder die Compiler Meldung bekommen) und lasse dir die Fehler erneut ausgeben, um wieder die Zeilen zu sehen.
    Diese sind notwendig, um den Fehler an der jeweiligen Position festzustellen.