神奇的调试值“DEADBEEF”
通常用于指示嵌入式系统中的软件崩溃或死锁。DEADBEEF最初用于标记尚未初始化的新分配内存区域——当扫描内存转储时,很容易看到DEADBEEF。它被ibmrs/6000系统、32位PowerPC处理器上的macos和commodoreamiga用作一个神奇的调试值。在sunmicrosystems的Solaris上,它标记释放的内核内存。在运行在Alpha处理器上的OpenVMS上,按CTRL-T可以看到DEC-Alpha SRM控制台有一个后台进程,该进程捕获内存错误,由PS标识为“BeefEater waiting On 0xdeadbeefee”。
例子:
2020-12-11 17:39:15.668 R]thread pri status sp stack size max used left tick error
-------- --- ------- ---------- ---------- ------ ---------- ---
mbtcp_te 12 suspend 0x000002c8 0x00000800 73% 0x00000001 000
Mb_RTUM_ 9 suspend 0x000000dc 0x00000800 44% 0x00000006 000
Mb_RTUM_ 8 suspend 0x0000017c 0x00000800 49% 0x00000001 000
Mb_RTUS_ 7 suspend 0x000001f4 0x00000800 30% 0x0000000a 000
tshell 20 suspend 0x00000184 0x00001000 09% 0x00000009 000
HC148_EX 6 ready 0x000000a0 0x00000200 41% 0x00000030 -02
wiz_stat 28 suspend 0x000000b8 0x00000800 16% 0x00000013 000
wiz 5 suspend 0x000000b0 0x00000200 72% 0x00000008 000
sample_L 14 ready 0x000001dc 0x00000800 43% 0x0000002e 000
sys_work 23 suspend 0x00000084 0x00000800 63% 0x00000001 000
tidle0 31 ready 0x00000060 0x00000100 53% 0x0000001f 000
timer 4 suspend 0x000000b0 0x00000200 88% 0x00000009 000
main 10 suspend 0x00000148 0x00000800 60% 0x0000000c 000
Firmware name: rtthread, hardware version: 1.0, software version: 1.0
Fault on interrupt or bare metal(no OS) environment
===== Thread stack information =====
addr: 20000bb8 data: deadbeef
addr: 20000bbc data: deadbeef
addr: 20000bc0 data: 20002510
addr: 20000bc4 data: 20003b38
。。。
addr: 20000c90 data: 080235db
====================================
=================== Registers information ====================
R0 : fffffff1 R1 : fffffff1 R2 : 00000001 R3 : deadbeef
R12: deadbeef LR : 20000be0 PC : deadbeef PSR: deadbeef
==============================================================
Bus fault is caused by imprecise data access violation
Show more call stack info by run: addr2line -e rtthread.elf -a -f deadbeef 0800701c 08006eee 080078d4 08007fac 0800383a 08023960 08006e0a 080235da
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2016-12-13 STM32串口