CRI ADX  Last Updated: 2024-07-17 10:48 p
如何获取错误


运行时库

错误的类型及如何获取错误

如果在使用运行时库期间发生诸如未经授权的访问、挂起、音频异常、故障等问题,请首先确认运行时库中是否发生了什么错误。
运行时库中的错误大致分为以下两种。
  • 致命错误(不允许发生的错误)
  • 可能发生的错误(正常操作中可能发生的错误)
可以通过注册错误回调函数检测“致命错误”。
可以通过检查各种句柄的状态检测“可能发生的错误”。
错误检测方法的详细信息请参照 关于错误处理错误回调
另外,在调试版程序库(库文件名最后带有“D”)中,与发布版程序库相比增强了错误检查。 如果在发布版程序库中没有发生错误,请切换到调试版程序库进行确认。



发生致命错误(错误回调)时的措施

如果因为致命错误而发生错误回调,请检查错误回调的发生时间及传递给错误回调的错误消息的内容。
  • 通过调试器调试程序时
    • 可以轻松地在注册的错误回调函数中设置断点。
  • 无法设置断点但可以输出日志时
    • 将传递给错误回调的错误消息作为日志输出。
    • 在发生错误的时间前后输出日志,缩小发生时间范围。
  • 在真机的ROM中执行等无法输出日志时
    • 在屏幕上显示传递给错误回调的错误信息。
    • 最好也同时显示发生错误回调的次数。
如果能够获取错误消息,请根据错误消息的内容,确认在发生错误的时间附近的API的使用方法有否出错。
常见的错误消息如下。
  • "EXXXXXXXX:Invalid parameter."
    • 传递给API的参数无效。
  • "EXXXXXXXX:Failed to allocate memory."
    • 无法分配内存,或传递的工作区不足。
  • "EXXXXXXXX:Thread-unsafe function has been executed in parallel."
    • 从多个线程调用非线程安全的函数。
  • "EXXXXXXXX:Function not implemented."
    • 使用未实现的功能或函数。
有可能会从运行时库的定期处理及内部模块发生错误回调。
不知道错误消息的含义或其解决方法时,请联系CRI公司的技术支持并提交错误回调的发生时间和错误消息。
关于技术支持问题,请参照 usr_support_site_contents_inqform 。



可能发生的错误(状态为错误状态)

如果各种句柄的状态为错误状态,请参照API参考的各种句柄说明或GetStatus函数说明。
如果发生文件读取错误或磁盘弹出错误,可能需要按照各个平台采取其特定措施。请同时确认平台专用的添加信息。



无法确认运行时库的错误时

请联系CRI公司的技术支持并提交发生问题的情况和发生频率等信息。
关于技术支持问题,请参照 usr_support_site_contents_inqform。
此时,以下信息有助于查明问题。
  • 发生未经授权的访问/挂起时
    • 调试器信息
      • 停止位置附近的反汇编
      • 寄存器信息
      • 线程运行情况
    • 核心转储等转储信息
  • 声音异常
    • 录制声音的WAV文件和视频
发送大文件时请使用CRI公司的FTPServer。(如果没有FTP帐户,请与我们联系)



工具

在工具中发生错误时,如果是控制工具则向控制台输出错误消息,如果是GUI工具则通过日志窗口或错误对话框输出错误消息。 输出错误信息时,请根据其内容采取措施。
在本手册的同一文件夹中包含错误手册(CRI_Error_Manual_xxx_c.chm)。
请参照其中的错误的详细说明和解决方法。
不知道错误消息的含义或不知道处置方法时,请联系CRI公司的技术支持并提交错误回调的发生时间和错误消息。
关于技术支持问题,请参照 usr_support_site_contents_inqform 。



Return:故障排除