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

本文介绍了Symbian应用程序在调试过程中可能出现的各种错误代码及其含义,并提供了具体的解决办法。包括KERN-EXEC0、KERN-EXEC3、USER11等错误的详细解释。

在调试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 控制针的情况,这个是非常常见的了,大家都知道是什么情况。其实,如果你的程序要加载一些库,如果这些库没有的话,有事也会出现空指针的错误。

内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值