现在的位置: 首页 > 综合 > 正文

设置在symbian模拟器上出现错误编号

2013年06月17日 ⁄ 综合 ⁄ 共 1823字 ⁄ 字号 评论关闭

在调试symbian应用程序的过程中,有些时候程序已经编译成功了,但是在程序运行的时出现了异常退出,这时候我们可以通过在模拟器上产生错误代码查询错误

方法很简单:在C:/Symbian/8.0a/S60_2nd_FP2_SC/epoc32/wins/c/System/Bootdata  目录下添加ErrRd文件,就ok了。

常见错误代码:

 KERN-EXEC 0
此错误通常出现在进程或线程使用已经销毁服务对象句柄,如调用了某个对象的Close()方法而继续使用此对象句柄

KERN-EXEC 3
此错误在好多情况下都会产生,最常见的情况通常是由于你使用了空指针,比如在对象没有创建的情况下使用其成员变量或方法
USER 11
内存越界 通常情况下是由于你没有给你的数据分配足够的缓冲区造成的。
USER 130
数组越界,如果你访问的RArray 或RPointerArray 数组下标超过了数组长度则会出现此错误
USER 29
此错误大都是因为对描述符取子串操作索引越界所致
USER 42
此错误通常是由于内存非法访问,比如访问指向无效内存的指针。我通常在调试dll的时候出现此错误,主要是没有执行Freeze由于dll修改。依赖dll主程序没有重写编译。函数访问地址出现错误
E32USER-CBase 71
通常情况下出现此错误由于CleanupStack::PushL() 和 CleanupStack::Pop()不匹配引起的,比如调用了CleanStack::PushL() 而忘记调用 CleanStack::Pop()
E32USER-CBase 63
此错误对应于E32USER-CBase 71 也是由于CleanupStack::PushL() 和 CleanupStack::Pop()不匹配引起的,你可能是过多的调用了CleanStack::Pop()
Avkon 59
在s60 2nd中构造一个视图时 不调用BaseConstructL();不会出现异常,移植到s60 3rd 如果不调用BaseConstructL();系统会提示此错误
关于错误代码 -46
第三版中调用未授权或不可用的服务通常会返回 -46的错误
错误代码 cone -8 通常是由于窗口资源没有释放引起的。确认在程序推出后清除了创建窗口的控件
CONE 44
发生此错误可能是由于你在销毁控件的时候,忘记调用 RemoveFromStack() 移除响应事件的控件。
在CEikRichTextEditor中使用RichText()→Reset()对文本清空以后执行如插入文本等操作时出现ETEXT 12的错误。

问题分析:

ETEXT 12
在panic文档中的描述为ECharPosBeyondDocument,因此是插入文本时由于光标的位置越界造成的。执行RichText()→Reset()以后文本被清空了,但是光标位置却仍然停留在原来的位置,系统并不会自动回到0位置。

解决方案:

必须调用如下两句手动的把光标位置设为0就可以了

 iRichTextEditor->HandleTextChangedL();
 iRichTextEditor->SetCursorPosL(0, EFalse

cone 14 
    Environment cannot find the specified resource in any resource file ,资源文件出错了。肯能是资源文件读得不正确。

在平时的软件开发中,其实我们常见的错误也就那么几个,这里我吧自己常见的错误列出来: 

USER 10
描述符的下标超过其实际的长度。如:HBuf<10>text; text.Mid(11);

USER 11
在append或者是copy的时候,目的描述符的长度不够长。

USER 42
删除一个并不存在的对象,通常是这种情况:如你有两个指针指向了同一个对象,当你同时将这两个指针删除的时候,就会出问题。还有一种比较常见的情形是在使用一些会将所有权转移的数组(如RPointArray)的时候,比如我new

一个对象temp,然后append到RPointArray中,之后,我又将temp删除,那么在最后,释放RPointArray的时候就会出现USer42的错误。因为temp指向的对象的所有权已经转向了数组。

USER 130
使用数组时下表超过数组的最大允许的个数。

KEXE 3
控制针的情况,这个是非常常见的了,大家都知道是什么情况。其实,如果你的程序要加载一些库,如果这些库没有的话,有事也会出现空指针的错误。

抱歉!评论已关闭.