杂项、疑难杂症
文武先生hh
这个作者很懒,什么都没留下…
展开
-
c语言宏定义中涉及到运算一定要加括号,不然展开会有出错的风险
原创 2024-03-08 14:16:55 · 106 阅读 · 0 评论 -
死锁的程序例子
【代码】死锁的程序例子。原创 2024-01-31 14:09:00 · 112 阅读 · 1 评论 -
反汇编操作, 找出错误的地址对应的函数;以及添加错误堆栈打印函数后怎么使用addr2line -e hunter.debug 0x40b180
3.在刚刚烧录的文件对应的hunter文件,执行如下操作 ,得出反汇编文件hunter1_elf。然后反汇编文件中通过地址可以找出相应的函数,这里可以看出是失败了,没有找出,正常是会有找出的。2.烧录代码运行后看到错误打印如下。1. 需要在代码中加入,并编译。当然也可以在服务器通过指令。来定位具体问题出在哪个函数。原创 2024-01-30 21:56:26 · 290 阅读 · 1 评论 -
d40注意如果一个线程非常频繁访问一个变量,而其他线程又去改变这个变量的值会导致前面的线程因为读错误卡死;最简单的办法就是volatile,加线程不要空转浪费资源,应该加阻塞或者休眠;
线程不要空转浪费资源,应该加阻塞或者休眠;注意如果一个线程非常频繁访问一个变量,而其他线程又去改变这个变量的值会导致前面的线程因为读错误卡死。原创 2024-01-25 20:50:58 · 336 阅读 · 0 评论 -
定时器初始化在初始化函数中要尽量早,否则当某个模块调用到定时器去控制其他模块的时候,可能定时器初始化过晚,而不能使用,导致卡死
如下,若此模块初始化早于定时器那么在调用定时器的时候,可能定时器还未初始化,这样子会导致空指针卡死,所以需要把定时器初始化提前,并且在此处加上指针的判断。定时器初始化在初始化函数中要尽量早,否则当某个模块调用到定时器去控制其他模块的时候,可能定时器初始化过晚,而不能使用,导致卡死。原创 2023-11-24 11:24:45 · 53 阅读 · 1 评论