Расширенный код паники
Метаданные
Пример кода
Статья
Если ваше приложение во время выполнения сгенерирует панику - оно будет закрыто и ОС покажет сообщение об ошибке: "Приложение закрыто:/n%S" где %S имя вашего приложения.
В эмуляторе, если разрешена отладка на лету (just in time debugging), вместо сообщения о возникшей панике и прекращения выполнения нити будет запущен отладчик. Некоторые релизы Symbin SDK распространяются с такой настройкой по-умолчанию. Ее можно запретить если в файл %EPOCROOT%\epoc32\data\epoc.ini добавить строчку
JustInTime 0
S60 1го и 2го издания
Для того чтобы эмулятор/смартфон отображали причину возникновения паники, Вы должны создать файл ErrRd(без расширения) размером 0 байт в папке c:\system\bootdata\
На смартфоне Вы можете использовать файловый браузер для того чтобы создать этот файл (например FExplorer). Для эмулятора Вы должны создать этот файл на Вашем компьютере в папке %EPOCROOT%\epoc32\wins[cw|b]\c\system\bootdata\
S60 3го издания
Для эмулятора эта возможность может быть активирована с помощью меню эмулятора Tools -> Preferences и установки опции "Extended panic code file" на закладке C++ Debug.
На смартфоне файл ErrRd должен быть создан в c:\resource\. Для его создания можно воспользоваться подписанным sis-файлом который выложен здесь (Файл в сертификации действует до 2018).
В результате
После того, как файл ErrRd создан, сообщение об ошибке при возникновении паники изменится на "Приложение закрыто:/n%S/n%S %d" где вторая %S заменяется на строку с причиной возникновения паники (USER, KERN-EXEC, ...), а %d заменяется кодом паники.
Замечание: Причина возникновения паники и ее код только отображаются на экране в файл ErrRd не записываются.
Воспользовавшись помощью, представленной в SDK, вы сможете понять в чем причина возникшей паники. Если Вы сообщаете о возникшей панике в Nokia Developer's Discussion Boards или в Nokia Developer's Technical Support service, пожалуйста, обязательно указывайте отображаемую причину возникновения паники и ее код.
Посетите следующую ссылку Symbian OS Error Codes.



(no comments yet)