[转]DEADBEEF 是什么

Posted lucelu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转]DEADBEEF 是什么相关的知识,希望对你有一定的参考价值。

我在uboot代码里看到,freescale系列cpu,总喜欢把ddr的值全部初始化为0xDEADBEEF。

直到最近,我看到谷歌面试题里居然也有问这个值的来历,才认真搜了一下,果然有历史渊源啊。

 

http://en.wikipedia.org/wiki/Hexspeak

Many computer processorsoperating systems, and debuggers make use of magic numbers, especially as a magic debug value.

  • 0x8BADF00D ("ate bad food") is used by Apple in iOS crash reports, when an application takes too long to launch, terminate, or respond to system events.[1]

  • 0x1BADB002 ("1 bad boot"[2]) Multiboot header magic number.[3]

  • 0xB16B00B5 ("big boobs") was required by Microsoft‘s Hyper-V hypervisor to be used by Linux guests as their "guest signature".[4] This offending code was later changed to 0x0DEFACED ("defaced").[5]

  • 0xBAADF00D ("bad food") is used by Microsoft‘s LocalAlloc(LMEM_FIXED) to indicate uninitialised allocated heap memory when the debug heap is used.[6]

  • 0xBADDCAFE ("bad cafe") is used by Libumem to indicate uninitialized memory area

  • 0xCAFEBABE ("cafe babe") is used by Mach-O to identify Universal object files, and by the Java programming language to identify Java bytecodeclass files.[7]

  • 0xCAFED00D ("Cafe Dude") is used by Java as a magic number for their pack200 compression.[8]

  • 0xD15EA5E ("disease") is a flag that indicates regular boot on the Nintendo GameCube and Wii consoles.[9][10]

  • 0xDEADBABE ("Dead Babe") is used by IBM Jikes RVM as a sanity check of the stack of the primary thread [11]

  • 0xDEADBEEF ("dead beef") is frequently used to indicate a software crash or deadlock in embedded systems. DEADBEEF was originally used to mark newly allocated areas of memory that had not yet been initialized -- when scanning a memory dump, it is easy to see the DEADBEEF. It is used by IBM RS/6000 systems, Mac OS on 32-bit PowerPC processors and the Commodore Amiga as a magic debug value. On Sun Microsystems‘ Solaris, it marks freed kernel memory. On OpenVMS running on Alpha processors, DEAD_BEEF can be seen by pressing CTRL-T. The DEC Alpha SRM console has a background process that traps memory errors, identified by PS as "BeefEater waiting on 0xdeadbeef".[12]

  • 0xDEADC0DE ("dead code") is used as a marker in OpenWRT firmware to signify the beginning of the to-be created jffs2 filesystem at the end of the static firmware.

  • 0xDEADDEAD ("dead dead") is the bug check (STOP) code displayed when invoking a Blue Screen of Death either by telling the kernel via the attached debugger, or by using a special keystroke combination.[13] This is usually seen by driver developers, as it is used to get a memory dump on Windows NT based systems. An alternative to 0xDEADDEAD is the bug check code 0x000000E2,[14] as they are both called MANUALLY_INITIATED_CRASH as seen on the Microsoft Developer Network.

  • 0xDEADFA11 ("dead fall") is used by Apple in iOS crash reports, when the user force quits an application.[1]

  • 0xDEAD10CC ("dead lock") is used by Apple in iOS crash reports, when application holds on to a system resource while running in the background.[1]

  • 0xDEFEC8ED ("defecated") is the magic number for OpenSolaris core dumps.[15]

  • 0xFACEFEED ("face feed") is used by Alpha servers running Windows NT. The Alpha Hardware Abstraction Layer (HAL) generates this error when it encounters a hardware failure.[16]

  • 0xFEE1DEAD ("feel dead") is used as a magic number in the Linux reboot system call.[17]

  • 0xE011CFD0 is used as magic number for Microsoft Office files. In little endian this reads D0CF11E0, "docfile0".[18]

  • 0x0000000FF1CE ("office") is used as the last part of product codes (guid) for Microsoft Office components (visible in registry under HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall registry key).

  • 0x00BAB10C ("oo-ba-block") is used as the magic number for the ZFS uberblock.

  • C15C:0D06:F00D ("cisco dog food") used in the IPv6 address of www.cisco.com on World IPv6 Day. "Dog food" refers to Cisco eating its own dog foodwith IPv6.

  • face:b00c ("facebook") used in the IPv6 address of www.v6.facebook.com

  • 0xDEADD00D ("dead dude") is used by Android in the Dalvik virtual machine to indicate a VM abort.

  • 0xCEFAEDFE ("face feed") is used by Apple in iOS as a header for binary files. In little endian this reads FACEFEED, "Face Feed".

  • 0xDABBAD00 ("dabba doo") is the name of a blog on computer security.[19]

  • 0x1CEB00DA ("ice buddha") was used as the origin for the binary file parser IceBuddha.[20]

以上是关于[转]DEADBEEF 是什么的主要内容,如果未能解决你的问题,请参考以下文章

Swift 的异常堆栈中的 Dead & Exploded 是啥?

Unity Animation动画倒播 为什么要获取时间长度啊?

菜鸟笔记 -- Chapter 5.4 Dead Code

OSPF的HELLO报文,将路由的DEAD间隔设置为4倍而不是3倍的原因是啥?

樱桃挑选自动定制旧SHA-1线

WOW里有啥FS 有用的宏么