开发中常见故障类型

开发中常见故障类型

Q:开发中常见故障类型
在开发过程中经常出现的故障类型主要包括如下几种:
1、栈溢出
2、空指针访问
3、内存泄漏
4、数组越界
5、系统资源泄漏
6、死锁
7、优先级反转
8、位扩展和除零等错误
9、Bus Error
10、Not Found Symbol 
11、使用for循环延时被优化

以上故障原因经常出现在开发或排故过程中,其解决方法可参考如下方案:

    • Related Articles

    • 编译器优化导致的问题排故

      Q:编译器优化导致的问题排查方法 当 release 版本功能异常,而 debug 版本功能正常,很可能是编译器优化导致的问题。 1、首先根据代码功能大致缩小问题范围,然后可以借助 #pragma GCC optimize("O0") 这个宏来逐步注释缩小范围。 当然也可通过反汇编直接根据分析。 2、也可以通过 __attribute__((optimize("O0"))) 来禁止编译器对函数优化,如 static void rdGmacReg() ...
    • FileZilla 上传程序后运行崩溃?

      问:FileZilla Client 传输 APP,SylixOS 端运行此 APP 直接崩溃? 使用 FileZilla Client 传输 APP 到 SylixOS,之后执行 APP,系统崩溃,使用 RealEvo-IDE 传输同样的 APP 不会崩溃? 通过配置 FileZilla Client 传输文件选择使用二进制传输即可解决此问题。                                                  FileZilla Client配置
    • 系统遇到哪些异常时,会导致系统重启

      Q:系统遇到哪些异常时-会导致系统重启 以 MPSOC 平台为例,在异常中断处理流程中,如果检测到如下错误,那么会系统重启: 1、发现中断点处于内核态,那么会执行重启; 2、如果由系统任务触发中断处理流程,那么会执行重启; 3、如果当前是关键错误,或当前处于中断嵌套状态中时,那么会执行重启;(ESR_EL1 寄存器的 EXC_SERROR_INT 位指示当前是否处于关键错误) 4、当前异常处理流程处于中断嵌套状态时,会执行重启 5、当出现 invalid 异常时,会执行重启;(该 invalid ...
    • 应用程序崩溃,没有输出任何信息,如何定位?

      Q:应用程序崩溃,但没有输出任何信息,如何定位呢? 1,考虑是否栈溢出或者函数调用栈被破坏。 2,如何验证是否是栈溢出导致的呢? 在 SylixOS 上可以通过Shell 命令 调大调用栈。 //比如通过如下命令,将栈调大一倍,默认栈大小是65535shstack 120000 也有可能是栈变量等被改写,这就需要结合代码进行分析。 在嵌入式系统中,函数中最好不要定义太大的局部变量,这很容易导致栈溢出,并浪费很多时间来定位无明显提示信息的程序 Crash。 更多扩展知识见: ...
    • (Qt)多进程报错:could not bind to file /tmp/qtembedded-0/QtEmbedded-0

      Q:同时运行多个界面(Qt)进程报错:could not bind to file /tmp/qtembedded-0/QtEmbedded-0 第一个进程是可以运行的,继续运行第二个进程的时候报错,操作示例如下: [root@sylixos:/apps/test]# ./app1 -qws & [root@sylixos:/apps/tset]# ./app2 -qws QWSServerSocket::init: Address already in use ...