KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: Debugging mit Psplink
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich habe nen psplink auf meiner PSP eingerichtet und es funktioniert auch soweit. Wenn ich mein HB kompilierre, kann ich die Eboot ohne Fehler im XMB starten, wenn ich nun in meiner Makefile "BUILD_PRX = 0" auf "1" stelle ist die Eboot größer und funktioniert nicht mehr (blackscreen). Auch die .prx Datei funktioniert mit psplink nicht, ich bekomme immer folgenden Fehler:

Zitat:
host0:/get/svn/mc2djnr/> host0:/> host0:/> Loading all modules ... Ready
Exception - Bus error (data)
Thread ID - 0x04760875
Th Name - user_main
Module ID - 0x0476901D
Mod Name - "Evil Monkey"
EPC - 0x0880D340
Cause - 0x1000001C
BadVAddr - 0x0500050C
Status - 0x20088613
zr:0x00000000 at:0x08830000 v0:0xFF234386 v1:0x00000000
a0:0x08834AE6 a1:0x000000FA a2:0x00000000 a3:0x08834AE2
t0:0x000000FB t1:0x00000002 t2:0x08834AE2 t3:0x00000000
t4:0x00000000 t5:0xDEADBEEF t6:0xDEADBEEF t7:0xDEADBEEF
s0:0x000003EE s1:0x0007F412 s2:0x0883491C s3:0x000003EE
s4:0x00000028 s5:0x08820DE0 s6:0x0007F800 s7:0xDEADBEEF
t8:0xDEADBEEF t9:0xDEADBEEF k0:0x09FBFF00 k1:0x00000000
gp:0x08829670 sp:0x09FBFD40 fp:0x0007F800 ra:0x0880B70C
0x0880D340: 0xA8620003 '..b.' - swl $v0, 3($v1)


Was mache ich falsch?

Arktos :
Ich habe nen psplink auf meiner PSP eingerichtet und es funktioniert auch soweit. Wenn ich mein HB kompilierre, kann ich die Eboot ohne Fehler im XMB starten, wenn ich nun in meiner Makefile "BUILD_PRX = 0" auf "1" stelle ist die Eboot größer und funktioniert nicht mehr (blackscreen). Auch die .prx Datei funktioniert mit psplink nicht, ich bekomme immer folgenden Fehler:

Zitat:
Spoiler: (anzeigen)


Was mache ich falsch?


Du hast da einen fehler:
0x0880D340: 0xA8620003 '..b.' - swl $v0, 3($v1)

In Pseudo C:

Code:
u32 v0 = (u32 *) 0xFF234386;
u32 v1 = (u32 *) 0x00000000;
_sw(v0, v1+3);


er versucht 0xFF234386 nach 0x00000000 + 3(also 0x03) zu schreiben.. weil 0x03 keine gültige addr. im ram ist.. MUSS sie crashen.. >.<

Danke für die Antwort. Ich versteh nicht soviel von den Hexadezimal-Codes für Speicherfelder, aber wie kann ich jetzt herrausfinden, welche Variable (falls es überhaupt eine ist) Schuld daran ist?


Edit: Nun ist aber die Frage, warum das nur bei BUILD_PRX = 1 der Fall ist oder muss ich dann die .../lib/build_prx.mak statt die build.mak laden?

Arktos :
Danke für die Antwort. Ich versteh nicht soviel von den Hexadezimal-Codes für Speicherfelder, aber wie kann ich jetzt herrausfinden, welche Variable (falls es überhaupt eine ist) Schuld daran ist?


Edit: Nun ist aber die Frage, warum das nur bei BUILD_PRX = 1 der Fall ist oder muss ich dann die .../lib/build_prx.mak statt die build.mak laden?


Muss nichtmal an einer variable liegen.. es kann auch ein fehler sein den du gemachst hast.. bei einer funktion oder sonstiges..

Mehr kann ich nicht sagen ohne code. Der fehler ist aufjedenfall im user_mode thread

Aber wenn es ein Fehler von mir ist, wieso geht es dann, wenn ich build_prx ausschalte?
Naja, als ich vor ein paar Tagen mit ir_shell und der eboot.pbp gearbeitet habe, hat sich das ganze auch etwas komisch verhalten. Als ich vor ca. einem Jahr mal Homebrews mit ir_shell und usbhostfs debuggt habe, gab es nie Probleme. Nach einem Jahr wollte ich es dann mal fertigstellen, habe alles wieder installiert und nun kommen nur Probleme. Zum Beispiel schreib ich einfach in eine *.cpp Datei eine neue Funktion (nur zum Test) mit nichts drin void ...() { return; } ... Ich benutze die nirgends und plötzlich hängt sich die PSP auf bei der EBOOT.

Oder folgendes ist mir auch passiert: In einem Codeteil werden die Tastenabgefragt, die Eboot läuft - nun schreibe ich eine einfache IF-Abfrage rein und die Eboot geht nicht mehr über IR-shell aber im XMB gehts.

Naja, hier mal SVN repos, Code ist ja noch in Arbeit, ich selbst vermute aber, dass da was mit dem Compiler nicht stimmt.


svn checkout svn checkout http://evil-monkey-psp.googlecode.com/svn/trunk/mc2djnr_new
hab davon keine ahnung aber versuch es mal hiermit
vielleicht klappt es ja
http://wololo.net/talk/viewtopic.php?f=26&t=6453
Danke, aber wenns mit psplink und der normalen eboot nicht geht (wenn prx build an ist) nicht geht, wird es damit wohl auch nicht gehen.
vielleicht zeigt er andere infos...versuch es...oder haste was zu verlieren? *g*

naja egal, viel glück mit deinem projekt
Makefile

Code:
include $(PSPSDK)/lib/build.mak


So, das hab icj ganz unten in meiner Makefile drin. Nun habe ich gesehen, dass es in dem Ordner einen build_prx.mak gibt, aber wenn ich diese benutze, bekomme ich diese Fehler beim kompilieren:

Zitat:
[..]
/usr/local/pspdev/bin/psp-g++ -I. -I/usr/local/pspdev/psp/sdk/include -G0 -Wall -O2 -I. -I/usr/local/pspdev/psp/sdk/include -G0 -Wall -O2 -fno-exceptions -fno-rtti -c -o timebase.o timebase.cpp
/usr/local/pspdev/bin/psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -G0 -Wall -O2 -D_PSP_FW_VERSION=150 -L. -L/usr/local/pspdev/psp/sdk/lib -Wl,-q,-T/usr/local/pspdev/psp/sdk/lib/linkfile.prx -mno-crt0 -nostartfiles main.o TGALoader.o timebase.o -lpspgum -lpspgu -lpsprtc -lm -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpsputility -lpspuser -lpspkernel -o mc2djnr.elf
/usr/local/pspdev/lib/gcc/psp/4.3.2/../../../../psp/bin/ld: warning: cannot find entry symbol module_start; defaulting to 0000000000000000
main.o: In function `global constructors keyed to sprPt':
main.cpp:(.text+0x670): undefined reference to `__dso_handle'
main.cpp:(.text+0x68c): undefined reference to `__dso_handle'
main.cpp:(.text+0x6a8): undefined reference to `__dso_handle'
main.cpp:(.text+0x6c4): undefined reference to `__dso_handle'
main.cpp:(.text+0x6e0): undefined reference to `__dso_handle'
main.o:main.cpp:(.text+0x6fc): more undefined references to `__dso_handle' follow
collect2: ld gab 1 als Ende-Status zurück
make: *** [mc2djnr.elf] Fehler 1



Ich finde einfach die lib für dso_handle nicht :(

So, hab jetzt herrausgefunden, dass man die build_prx.mak nur für plugins verwendet. Nun geht es aber immer noch nicht. -.- Und bei IR_shell kommt nur ein schwarzer Bildschirm. Es geht irgentwie nur über das XMB.

Nützt es vielleicht was, wenn ich die Firmware wechsel? Habe im Moment 5.50 Gen-D3.
Referenz-URLs