Page 1 of 1
ps2link crashing
Posted: Fri Jun 24, 2005 1:28 pm
by radad
I have compiled the latest ps2link and ps2client from cvs. I am getting it crashing exerytime a run a second elf. The first elf runs fine. I can even rerun this elf many times. When I try a different elf it crashes. I have to reboot the ps2 then I run the second elf and everything runs fine.
Anyone else experiencing this problem?
Posted: Fri Jun 24, 2005 2:25 pm
by ooPo
Does it crash if you do a reset before running the second elf?
Is your first elf doing anything 'funny' to sifrpc? Is it loading into a memory location overlapping with ps2link? Did you forget to sacrifice a chicken?
There's many nasty things you can do to make it crash. :)
What do these programs do?
Posted: Fri Jun 24, 2005 2:50 pm
by radad
I haven't tried resetting, shall try that tonight.
The only sif function it calls is SifInitRpc.
It is a very simple program to get a directly listing output using printf.
Posted: Fri Jun 24, 2005 5:46 pm
by urchin
I do a ps2client reset before running each elf - should I need to do this, or should I be able to run one elf after another? (assuming they are not doing anything illegal)
I can run a simple elf several times, but then get a message like "EE needs reset" and the PS2 locks requiring a reboot.
Posted: Fri Jun 24, 2005 11:55 pm
by ooPo
A well-behaved program shouldn't have to be reset between executions.
Posted: Sat Jun 25, 2005 12:56 am
by pixel
Yet, all the ps2 softwares you can find around are not well-behaved :P So, better reset between two execee. It doesn't take long anyway.
Posted: Sun Jun 26, 2005 10:44 am
by radad
Resetting solved the problem.
I agree that a well-behaved program should not need resetting but obviously that is not possible now. The programs I was trying are not much more complex than the hello world sample.
Posted: Mon Jun 27, 2005 5:38 am
by dlanor
radad wrote:Resetting solved the problem.
I agree that a well-behaved program should not need resetting but obviously that is not possible now. The programs I was trying are not much more complex than the hello world sample.
There are some known reasons for these problems.
Our programming libraries rely on IOP modules, and usually expect them to have been loaded specifically for the EE program running the EE library code. That is often realistic for newly booted game disks, but less so for homebrew programs under test...
When an EE library and the IOP module it uses were not loaded by the same program, they may be in different operational 'states' causing their cooperation to malfunction in various ways. The same is also true if a program needs to perform an IOP reset while still continuing to use its own EE libraries, since the EE libs are not properly 'informed' of the state change in the IOP modules (usually reloaded from scratch on such occasions).
Solving these problems is not easy, as it needs to be done in ways that ensure maximum flexibility, reliability, as well as compatibility with all existing software. That's a pretty tall order, but I think it can be filled. At least it can be done better than just by ignoring the issue, which is what we have been doing for quite a while (more or less ;) )
(I'm not 'picking' on any person here, just on the situation as such.)
Best regards: dlanor