Trying to crunch through all the robustness and stability testing necessary for Symbian signed I’m becoming sick and tired of the quality of the platform we are supposed to use. I have wasted countless hours with the following problems:
- CodeWarrior crashes regularly when debugging. Several times a day, mostly with on-device debugging but now and then also on the emulator. I’ve sent the crash dumps to Nokia who we’ve paid quite a bit for the licenses, but nothing so far.
- CodeWarrior keeps hidden references to projects, so after an MMP change I can’t reload the XML without restarting the whole IDE.
- We have both Finnish and English resource files. Compiling the resources CodeWarrior generates the same output for both variants (Finnish). Resources have to be recompiled on the command line.
- The N80 hangs with on-device-debugging _all the f*cking time_. I don’t know if the problem is with the App TRK, the USB implementation or the physical connection, but I can basically count on having to take out the battery after each debugging session (it does seem to be a problem with the physical connector on the phone).
- The Symbian Signed criteria states that we should handle out-of-disk-space situations gracefully. Never mind that the platform doesn’t: App TRK sometimes hangs when filling disk space, and the application manager often fails to remove an application from a full disk without any explanation (no error display whatsoever, the uninstall just doesn’t happen). And Leaving with KErrDiskFull from a document’s ConstructL normally produces no user-visible feedback, you have to implement that yourself.
- Even tho LOWMEM testing is waived for 9.1, we’ve been doing it on the emulator to find bugs in error handling and destructor code. Leaving from an AppUi’s ConstructL leaks memory, since the AppUi is not destructed by the framework in that case (and cannot safely be destructed manually).
- The Bluetooth stack on the N80 seems to be almost as bad as back in the days of the 7650. Using it as a modem with my laptop or transferring files starts failing after a few times, and necessitates me to go to the phone and switch the bluetooth off and on to recover. Trying to transfer data from my older phone via bluetooth gives btnotifappserver -44. On an E70 you get the classic BTServer crashes.
- To be able to step into code or set breakpoints in CodeWarrior, the project’s target has to be set to the active debugging target. This means that switching debugging between the emulator and the device requires you to switch the target in all your projects, for us in about 30. Remains to be scripted.
- The scripts that generate CodeWarrior project import XML files are broken in multiple ways (some of which we’ve fixed by now, some that await fixing), for example: if you have no DEF file and specify EXPORTUNFROZEN, an imaginary base DEF file is still put to the linker command line, which then fails.
- Trying to install a SIS file over bluetooth with PC Suite just gives ‘Operation failed’.
- Giving the following backup_registration.xml to the phone makes the phone backup engine crash: a sbengine USER 130 panic. This would of course fail signing. Without the public_backup bit the backup engine doesn’t crash, but our files are not backed up because the application is not closed before the ‘Full backup’ stage, which is after public file backup.
<?xml version="1.0" standalone="yes"?> <backup_registration> <system_backup/> <restore requires_reboot = "no"/> <public_backup> <include_directory>\Data\Context\</include_directory> </public_backup> </backup_registration>
- An application running out of memory (exceeding maximum heap size) makes the phone reboot (yes, we’ve now both tuned the memory usage and upped the heap limit)