Antwort schreiben  Thema schreiben 
Verfasser Nachricht
Arktos
Junior Mitglied
**


Beiträge: 47
Gruppe: User
Registriert seit: May 2011

Status: Offline
Danke erhalten: 8
Beitrag: #1
xPSP  PSP stürzt ab beim Laden der EBOOT

Edit: Habe gerade gesehen, dass die PSP nicht abstürzt, da sich wärend des schwarzen Screens noch der Home-Button drücken lässt. Allerdings macht das HB nicht weiter und der Code, der anscheint das ganze auslöst, wird beim Starten des HBs garnicht aufgerufen.
Edit: Stürzt doch ab, war nur weil ich PSPlink an hatte Big Grin


Ich verstehe es nicht, ich glaube, dass die PSP mich einfach nur ärgern will Sad

Folgendes:

In meinem Code wird eine Mapdatei eingelesen, allerdings erst, wenn man das Level startet, dies ist aber beim Laden des Spiels nicht der Fall, da man dann noch im Hauptmenu ist.

Hier ein Teil aus dem Maploader:

Code:
if(Rmb[mbid].dir == 0)
                {
                    Rmb[mbid].max_low = Rmb[mbid].x - Rmb[mbid].mrad * 22 * wpx;
                    Rmb[mbid].max_high = Rmb[mbid].x + Rmb[mbid].mrad * 22 * wpx;
                }


Das stürzt ab, aber wenn ich an dieser Stelle die IF-Abfrage rausnehme, dann funktiert es. Rmb[mbid].dir ist ein Integer.


PSPLink sagt folgendes:

Code:
host0:/> Loading all modules ... Ready
Exception - Syscall
Thread ID - 0x04760867
Th Name   - user_main
Module ID - 0x0476900B
Mod Name  - "Evil Monkey"
EPC       - 0x0891AF2C
Cause     - 0x90000020
BadVAddr  - 0xA5494C54
Status    - 0x20088613
zr:0x00000000 at:0xDEADBEEF v0:0x08930000 v1:0x00000000
a0:0x0000005C a1:0x00000000 a2:0x4893494C a3:0x08930000
t0:0xDEADBEEF t1:0xDEADBEEF t2:0xDEADBEEF t3:0xDEADBEEF
t4:0xDEADBEEF t5:0xDEADBEEF t6:0xDEADBEEF t7:0xDEADBEEF
s0:0x08930000 s1:0x09FBFE34 s2:0x08920000 s3:0x08920000
s4:0x08920000 s5:0x00000013 s6:0xDEADBEEF s7:0xDEADBEEF
t8:0xDEADBEEF t9:0xDEADBEEF k0:0x09FBFF00 k1:0x00000000
gp:0x08927450 sp:0x09FBFE08 fp:0x09FBFEA0 ra:0x089017C4
0x0891AF2C: 0x03E00008 '....' - jr         $ra


Kenne mich damit nicht so wirklich aus aber im letzten Teil versucht er doch mit dem MIPS CMD jr (jump register) zu $ra (0x089017C4) zu springen und das klappt anscheint nicht. Aber was hat das mit der IF-Abfrage zu tun?? Oder hat der Kompiler einen seltenen Fehler?

Edit: Kann es sein, dass das ein Buffer overflow ist?

Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2011 21:58 von Arktos.

28.06.2011 20:41
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
ardi
Halbprofi
***


Beiträge: 114
Gruppe: User
Registriert seit: Feb 2011

Status: Abwesend
Danke erhalten: 244
Beitrag: #2
xPSP  RE: PSP stürzt ab beim Laden der EBOOT

Arktos :
Edit: Habe gerade gesehen, dass die PSP nicht abstürzt, da sich wärend des schwarzen Screens noch der Home-Button drücken lässt. Allerdings macht das HB nicht weiter und der Code, der anscheint das ganze auslöst, wird beim Starten des HBs garnicht aufgerufen.
Edit: Stürzt doch ab, war nur weil ich PSPlink an hatte Big Grin


Ich verstehe es nicht, ich glaube, dass die PSP mich einfach nur ärgern will Sad

Folgendes:

In meinem Code wird eine Mapdatei eingelesen, allerdings erst, wenn man das Level startet, dies ist aber beim Laden des Spiels nicht der Fall, da man dann noch im Hauptmenu ist.

Hier ein Teil aus dem Maploader:

Code:
if(Rmb[mbid].dir == 0)
                {
                    Rmb[mbid].max_low = Rmb[mbid].x - Rmb[mbid].mrad * 22 * wpx;
                    Rmb[mbid].max_high = Rmb[mbid].x + Rmb[mbid].mrad * 22 * wpx;
                }


Das stürzt ab, aber wenn ich an dieser Stelle die IF-Abfrage rausnehme, dann funktiert es. Rmb[mbid].dir ist ein Integer.


PSPLink sagt folgendes:

Code:
host0:/> Loading all modules ... Ready
Exception - Syscall
Thread ID - 0x04760867
Th Name   - user_main
Module ID - 0x0476900B
Mod Name  - "Evil Monkey"
EPC       - 0x0891AF2C
Cause     - 0x90000020
BadVAddr  - 0xA5494C54
Status    - 0x20088613
zr:0x00000000 at:0xDEADBEEF v0:0x08930000 v1:0x00000000
a0:0x0000005C a1:0x00000000 a2:0x4893494C a3:0x08930000
t0:0xDEADBEEF t1:0xDEADBEEF t2:0xDEADBEEF t3:0xDEADBEEF
t4:0xDEADBEEF t5:0xDEADBEEF t6:0xDEADBEEF t7:0xDEADBEEF
s0:0x08930000 s1:0x09FBFE34 s2:0x08920000 s3:0x08920000
s4:0x08920000 s5:0x00000013 s6:0xDEADBEEF s7:0xDEADBEEF
t8:0xDEADBEEF t9:0xDEADBEEF k0:0x09FBFF00 k1:0x00000000
gp:0x08927450 sp:0x09FBFE08 fp:0x09FBFEA0 ra:0x089017C4
0x0891AF2C: 0x03E00008 '....' - jr         $ra


Kenne mich damit nicht so wirklich aus aber im letzten Teil versucht er doch mit dem MIPS CMD jr (jump register) zu $ra (0x089017C4) zu springen und das klappt anscheint nicht. Aber was hat das mit der IF-Abfrage zu tun?? Oder hat der Kompiler einen seltenen Fehler?

Edit: Kann es sein, dass das ein Buffer overflow ist?


wenn du den code der gesamten function postest,dann kann dir sicher besser geholfen werden.

ardi

29.06.2011 05:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Arktos
Junior Mitglied
**


Beiträge: 47
Gruppe: User
Registriert seit: May 2011

Status: Offline
Danke erhalten: 8
Beitrag: #3
RE: PSP stürzt ab beim Laden der EBOOT

Ok, ich update mal mein SVN Repository. Ich nahm jetzt an, dass es wegen der Stelle kam, weil wenn ich das ohne IF dahin schreibe, es dann funktioniert.

http://code.google.com/p/evil-monkey-psp/source/checkout

-> file: loadmap.cpp

29.06.2011 09:37
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
ardi
Halbprofi
***


Beiträge: 114
Gruppe: User
Registriert seit: Feb 2011

Status: Abwesend
Danke erhalten: 244
Beitrag: #4
xPSP  RE: PSP stürzt ab beim Laden der EBOOT

Arktos :
Ok, ich update mal mein SVN Repository. Ich nahm jetzt an, dass es wegen der Stelle kam, weil wenn ich das ohne IF dahin schreibe, es dann funktioniert.

http://code.google.com/p/evil-monkey-psp/source/checkout

-> file: loadmap.cpp


Das "if" macht nichts schlimmes.

Möglicher weise ist es doch ein Stackoverflow.

Code:
char *lines[512];

schluckt schon allein 2 kByte. versuchs mal testweise mit:

Code:
static char *lines[512];


Außerdem ist mir aufgefallen, das du "index" nicht auf 511 begrenzt. Der "lines"-Buffer könnte überlaufen
Ich würde den Teil:

Code:
while(token != NULL)
   {
        lines[index] = token; index++;
        token = strtok(NULL,"\n");
   }

so machen:

Code:
for(index<512 && token != NULL; index++)
   {
        lines[index] = token;
        token = strtok(NULL,"\n");
   }

oder so:

Code:
while(token != NULL)
   {
        if(index == 512) mcError("Error: mapfile mora as 512 Lines");
        lines[index] = token; index++;
        token = strtok(NULL,"\n");
   }

ardi

29.06.2011 12:10
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Arktos
Junior Mitglied
**


Beiträge: 47
Gruppe: User
Registriert seit: May 2011

Status: Offline
Danke erhalten: 8
Beitrag: #5
xPSP  RE: PSP stürzt ab beim Laden der EBOOT

Crasht auch. Liegt nicht daran, denn die aktuelle Mapdatei hat nur 40 Zeilen.
Aber irgentwo läuft was über, weil die ReturnAdresse ($ra) anscheint falsch ist oder der Kompiler hat ein Leck oder was weis ich.

Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2011 14:06 von Arktos.

29.06.2011 14:05
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xGames plug-ins in user mode laden? vitaGamer 1 1.562 24.03.2013 20:52
Letzter Beitrag: dx3m
xGames EBOOT.PBP decompilieren middey 4 2.447 05.11.2012 02:33
Letzter Beitrag: dx3m
xPSP Eboot.pbp Version Information ändern ? shaplayer 16 6.437 13.05.2012 15:58
Letzter Beitrag: shaplayer
xPSP LUA - hilfe beim coden benötigt SIM sk 23 4.900 06.02.2012 17:37
Letzter Beitrag: duLouser
xPSP txt laden ~ferra~ 2 1.508 31.12.2011 13:54
Letzter Beitrag: vista200

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang