Search code examples
pointersmemorywebkitmagic-numbers

What is 0xbbadbeef used for in Webkit?


While working with Webkit I encountered an error with a pointer set to 0xbbadbeef. What is BadBeef used for in Webkit?


Solution

  • It is a hexspeak used in WebKit and, it indicates a known, unrecoverable error such as out of memory.

    As you can see from the link https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/wtf/Assertions.h&l=180

    /* CRASH() - Raises a fatal error resulting in program termination and triggering either the debugger or the crash reporter.
    
       Use CRASH() in response to known, unrecoverable errors like out-of-memory.
       Macro is enabled in both debug and release mode.
       To test for unknown errors and verify assumptions, use ASSERT instead, to avoid impacting performance in release builds.
    
       Signals are ignored by the crash reporter on OS X so we must do better.
    */
    #ifndef CRASH
    #if COMPILER(MSVC)
    #define CRASH() (__debugbreak(), IMMEDIATE_CRASH())
    #else
    #define CRASH() \
        (WTFReportBacktrace(), (*(int*)0xfbadbeef = 0), IMMEDIATE_CRASH())
    #endif
    #endif