IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 嵌入式常见的段错误死机原因之一strlen函数 -> 正文阅读

[C++知识库]嵌入式常见的段错误死机原因之一strlen函数

????????? 在做嵌入式产品常见死机原因有很多种,其中之一就是strlen函数引起的。这个函数大家不会陌生,学c语言最基本的函数了,但在实际使用中偶尔不小心还是可能会引起段错误造成死机的。为什么呢?

?? 函数原型:unsigned?int?strlen(char?*s);

也就是输入一个字符串函数指针,判断这个字符串有多长。当你不小心输入了一个空指针的时候,错误就来了。很多时候我们都知道使用指针之前都判断一下这个指针是否是空指针,在开发中往往有时图省事或者自认为这里不判断也不会有事,盲目自信了一把!因此,我们还是得养成良好得习惯,使用之前还是要验证一下合法性。

段错误示例如下:

[2021/9/28 18:34:42] NMI
[2021/9/28 18:34:42] msp: 200087b8? psp: 3832dce8? stack(reg0): 200087b8? reg4: 20008798
[2021/9/28 18:34:42] r0: 00000000? r1: 00000001? r2: e000ed00? r3: 80000833
[2021/9/28 18:34:42] r4: 00000000? r5: 00000000? r6: 7ffffff8? r7: 3832de00
[2021/9/28 18:34:42] r8: 00000000? r9: ffffffff? r10: 2000fd24? r11: 00000001
[2021/9/28 18:34:42] r12: 00000030? r14(lr): 18124c19? r15(pc): 18124c18? xPSR: 61000033
[2021/9/28 18:34:42] The exception call: 200087b8
[2021/9/28 18:34:42] The exception end: 20008800
[2021/9/28 18:34:42] PC call-0: 18124c18: f7ff fffe 4770 460b 0781 d503
[2021/9/28 18:34:42] PC call-1: 18124c14: f000 f828 f7ff fffe 4770 460b
[2021/9/28 18:34:42] The normal call: 3832dce8

[2021/9/28 18:34:42] PC call_normal-0: 1811a076: 42d3 d100 bd10 f813 4d01 f801
[2021/9/28 18:34:42] PC call_normal-1: 1812060e: f7f9 fd21 68a3 1b9b 60a3 6823
[2021/9/28 18:34:42] PC call_normal-2: 1812060e: f7f9 fd21 68a3 1b9b 60a3 6823
[2021/9/28 18:34:42] PC call_normal-3: 18120582: 0000 e92d 47f0 688e 429e 4682
[2021/9/28 18:34:42] PC call_normal-4: 1811ad2c: 47c0 3001 d0aa 6823 079b d413
[2021/9/28 18:34:42] PC call_normal-5: 18120582: 0000 e92d 47f0 688e 429e 4682
[2021/9/28 18:34:42] PC call_normal-6: 1811a4ac: 0020 6c68 004c 6665 4567 4746
[2021/9/28 18:34:42] PC call_normal-7: 101667d4: 7325 2500 3a73 6425 7325 2f00

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:20:07  更:2021-10-11 17:22:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 23:48:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码