神奇的调试值“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 
 
posted on 2020-12-13 23:28  杰瑞鼠  阅读(1520)  评论(0编辑  收藏  举报