unexplained DSI exceptions
Posted: Wed Nov 03, 2010 11:36 am
I have noticed weird DSI exceptions happening in my application, they do not seem related to the application code as they always happen in the lwp_heap_free application.
The exact stack flow is:
As you can see, it seems that an IRQ callback is trying to free unallocated memory from an heap and cause the exception. Pressing the Reset button does nothing as the exception is caused during exception processing (well, I guess so).
I cannot explain myself what would cause this exception BUT I noticed they only happen if the console is not connected to the network (more exactly, the network settings are properly configured but Wifi is disconnected). I don't know if the issue is on HBC side (for example, network or Wifi device is not shutdown properly when it was not initially connected, and the device continue to send interrupts to the application) or a bug in libogc...
PS: I never try to use or even initialize the network in my own code
PS2: I tried to remove any connected USB drives but exception still happened. It really stops happening when I switched the Wifi ON and restarts HBC then the application.
Other test cases:
1) if I disconnect the Wifi router once the application is started, there is still no DSI exception occuring. However, rebooting to System Menu will hang and I have to switch the power off/on. Returning to HBC works normally but if I try to restart the application with the Wifi still being shutdown, DSI exception occurs again after a while when the application starts running.
2) if I wait for the HBC to connect to the network (Wifi ON) then disconnect the Wifi router and launch the application, everything is fine, no DSI exception in the application and returning to System Menu works as usual.
Any ideas ?
The exact stack flow is:
Code: Select all
lwp_heap_free->iosFree->c_irq_dispatcher->irq_exception_handler
I cannot explain myself what would cause this exception BUT I noticed they only happen if the console is not connected to the network (more exactly, the network settings are properly configured but Wifi is disconnected). I don't know if the issue is on HBC side (for example, network or Wifi device is not shutdown properly when it was not initially connected, and the device continue to send interrupts to the application) or a bug in libogc...
PS: I never try to use or even initialize the network in my own code
PS2: I tried to remove any connected USB drives but exception still happened. It really stops happening when I switched the Wifi ON and restarts HBC then the application.
Other test cases:
1) if I disconnect the Wifi router once the application is started, there is still no DSI exception occuring. However, rebooting to System Menu will hang and I have to switch the power off/on. Returning to HBC works normally but if I try to restart the application with the Wifi still being shutdown, DSI exception occurs again after a while when the application starts running.
2) if I wait for the HBC to connect to the network (Wifi ON) then disconnect the Wifi router and launch the application, everything is fine, no DSI exception in the application and returning to System Menu works as usual.
Any ideas ?