Alt text

What is R6003, R6009, ^@, ^C, ^A etc?

I don't understand the page.

  • 17
    Looks like the cat couldn't handle it. Commented Jul 12, 2010 at 16:01
  • 7
    A simple Google of R6003 and R6009 reveals that they are both runtime errors; one is integer divide by 0, the other is not enough space for environment. I'll leave it up to you to decide which is which. The carat-prefixed symbols are control codes that were converted to ascii text. ^M is a newline, for example. Basically... it's a type of messed up error you might get trying to read a stack trace while doing some old sk00l hacking.
    – Randolpho
    Commented Jul 12, 2010 at 16:18
  • @Randolpho: Where do these names (like R6003 etc) come from?
    – Moeb
    Commented Jul 12, 2010 at 17:44
  • 2
    @Lance: It's still workin on ur problemz. Commented Jul 12, 2010 at 23:06

5 Answers 5


This is roughly what you'd see when you open an old MS-DOS program (.exe) in a text editor. They scrolled the page until something recognizable showed up. Which are the runtime errors that the Microsoft C-runtime can show when it has to abort the program due to an unrecoverable error. Like a stack overflow.

The editor has a bit of trouble with some of the bytes in the file that are control codes in ASCII. Showing them with a ^ followed by a letter that's the code + 0x40, an old convention. So ^@ is 0x00, ^A is 0x01, ^C is 0x03, ^M is 0x0D (carriage return), etcetera. It displays 0x0A as-is, interpreted as a line-feed that terminates the line. Which gives clues to the editor's origin; it is a Unix editor. One way in which Unix and DOS/Windows are famously incompatible, a line-ending in Unix is "\n", but it is "\r\n" in Windows. Noted by @badp, the color scheme suggests gedit was used.

Some of the runtime errors are still defined in modern Windows C/C++ programs that were built with Microsoft's C compiler. Like R6018. But not a stack overflow any more; that's handled by the operating system today. Exception code 0xC00000FD, STATUS_STACK_OVERFLOW. Don't bother sending the error report to Microsoft; they already have a billion of them.

  • Those look like gedit themes.
    – badp
    Commented Oct 9, 2010 at 13:12

Ages ago, error codes were defined in file cmsgs.h for Microsoft's C compiler. I am talking DOS here...

I am not sure if this is the correct reference, but it is anyhow close.

*cmsgs.h - runtime errors
*       Copyright (c) 1990-1997, Microsoft Corporation. All rights reserved.
*       The file defines, in one place, all error message strings used within
*       the C run-time library.
*       [Internal]

#if _MSC_VER > 1000
#pragma once
#endif  /* _MSC_VER > 1000 */

#ifndef _INC_CMSGS
#define _INC_CMSGS

#ifndef _CRTBLD
 * This is an internal C runtime header file. It is used when building
 * the C runtimes only. It is not to be used as a public header file.
#error ERROR: Use of C runtime library internal header file.
#endif  /* _CRTBLD */

 * runtime error and termination messages

#ifdef _MAC
#define EOL "\n"
#else  /* _MAC */
#define EOL "\r\n"
#endif  /* _MAC */

#define _RT_STACK_TXT      "R6000" EOL "- stack overflow" EOL

#define _RT_FLOAT_TXT      "R6002" EOL "- floating point not loaded" EOL

#define _RT_INTDIV_TXT     "R6003" EOL "- integer divide by 0" EOL

#define _RT_SPACEARG_TXT   "R6008" EOL "- not enough space for arguments" EOL

#define _RT_SPACEENV_TXT   "R6009" EOL "- not enough space for environment" EOL

#define _RT_ABORT_TXT      "" EOL "abnormal program termination" EOL

#define _RT_THREAD_TXT     "R6016" EOL "- not enough space for thread data" EOL

#define _RT_LOCK_TXT       "R6017" EOL "- unexpected multithread lock error" EOL

#define _RT_HEAP_TXT       "R6018" EOL "- unexpected heap error" EOL

#define _RT_OPENCON_TXT    "R6019" EOL "- unable to open console device" EOL

#define _RT_NONCONT_TXT    "R6022" EOL "- non-continuable exception" EOL

#define _RT_INVALDISP_TXT  "R6023" EOL "- invalid exception disposition" EOL

 * _RT_ONEXIT_TXT is specific to Win32 and Dosx32 platforms
#define _RT_ONEXIT_TXT     "R6024" EOL "- not enough space for _onexit/atexit table" EOL

#define _RT_PUREVIRT_TXT   "R6025" EOL "- pure virtual function call" EOL

#define _RT_STDIOINIT_TXT  "R6026" EOL "- not enough space for stdio initialization" EOL

#define _RT_LOWIOINIT_TXT  "R6027" EOL "- not enough space for lowio initialization" EOL

#define _RT_HEAPINIT_TXT   "R6028" EOL "- unable to initialize heap" EOL

 * _RT_DOMAIN_TXT, _RT_SING_TXT and _RT_TLOSS_TXT are used by the floating
 * point library.
#define _RT_DOMAIN_TXT     "DOMAIN error" EOL

#define _RT_SING_TXT       "SING error" EOL

#define _RT_TLOSS_TXT      "TLOSS error" EOL

#define _RT_CRNL_TXT       EOL

#define _RT_BANNER_TXT     "runtime error "

#endif  /* _INC_CMSGS */

It looks like they opened a random .exe in Vim, searched for "stack overflow", and took screenshots with various colorschemes.


It reminds me more about the old Apple ][e, when booting, displaying a screen of random characters, with ^@ for zeroes...


There are six “collector card” screenshots in the deck, each with a different color palette.

offline-ide-1.png ↓

offline-ide-2.png ↓

offline-ide-3.png ↓

offline-ide-4.png ↓ (code line numbers visible in this screenshot - special edition)

offline-ide-5.png ↓

offline-ide-6.png ↓

Error message typed as selectable text ↓

- stack overflow^M
- integer divide by 0^M
^@      ^@R6009^M
- not enough space for environment^M
- unexpected heap error^M
^@ÿ^@run-time error ^@^B^@R6002^M
- floating-point support not loaded^M

HTML of the error page ↓

    <title>We are Offline</title>
    <style type="text/css">
        body { margin: 0; padding: 0; }
        iframe { border: 0; }
    <iframe width="100%" height="100%" id="pageFrame"></iframe>
        setTimeout(function () { location.reload(true); }, 300000);
        var hostName = window.location.hostname;
        var directory = '';
    <script src="https://cdn.sstatic.net/error-director.js"></script>
        if (top == self && directory) {
            document.getElementById('pageFrame').src = 'https://cdn.sstatic.net/' + directory + '/app_offline.htm';
        } else {
            // if we get here, that means even the offline pages on sstatic are offline
            document.getElementById('pageFrame').style.height = "0px";
            document.write("<h2>Stack Exchange is currently offline, we'll be back shortly!<\/h2>");

JavaScript the HTML references (error-director.js) ↓

var hosts = [];

function addSubs() {
    for (var i = 0; i < arguments.length; i ++) {
        var name = arguments[i];
        hosts.push({ dir: name, host: new RegExp(name + "\\\.(meta\\\.)?stackexchange") }); 

// x.stackexchange.com sites

// named sites
hosts.push({ dir: 'askubuntu',           host: /ubuntu\.(meta.)?stackexchange|askubuntu/ });
hosts.push({ dir: 'careers',             host: /careers\.stackoverflow/ });
hosts.push({ dir: 'stackexchange',       host: /^stackexchange\.com/ });
hosts.push({ dir: 'stackexchangemeta',   host: /^meta\.stackexchange\.(com|local)/ });
hosts.push({ dir: 'mathoverflow',        host: /mathoverflow\.net/ });
hosts.push({ dir: 'stackoverflowmeta',   host: /meta\.stackoverflow/ });
hosts.push({ dir: 'ru',                  host: /ru\.(meta\.)?stackoverflow/  });
hosts.push({ dir: 'ja',                  host: /(ja|jp)\.(meta\.)?stackoverflow/  });
hosts.push({ dir: 'es',                  host: /es\.(meta\.)?stackoverflow/ });
hosts.push({ dir: 'br',                  host: /(pt|br)\.(meta\.)?stackoverflow/ });
hosts.push({ dir: 'stackoverflow',       host: /stackoverflow/ });
hosts.push({ dir: 'serverfault',         host: /serverfault/ });
hosts.push({ dir: 'superuser',           host: /superuser/ });
hosts.push({ dir: 'stackapps',           host: /stackapps/ });
hosts.push({ dir: 'beta',                host: /stackexchange|.*/ }); //catch all

if (top === self) {
    for (var i = 0, l = hosts.length; i < l; i++) {
        var regEx = hosts[i].host;

        if (regEx.test(hostName)) {
            directory = 'sites/' + hosts[i].dir;

You can make of all this what you will. I'm just documenting. ¯\_(ツ)_/¯

  • Is this still in use when SO is offline? They did change the 404 and the 500 status pages, and pretty sure the offline page too, and can't or don't remember how to check it when SO is, well, not offline. Any idea? (Will edit in case it's all just history.) Commented Aug 24, 2023 at 7:00
  • @ShadowTheGPTWizard Apparently this error page is occasionally still used. I have no idea what circumstances trigger it though. I'm guessing it's much less common to see than 404 or 505. Here is another post about it on Meta: Why does the "offline for maintenance" page have many color themes? I encountered the error today between around 5:00am~5:10am UTC. I believe the page refreshed on its own after that and returned to normal.
    – Mentalist
    Commented Aug 24, 2023 at 7:23
  • Interesting. Well it's triggered when SO is offline, but should be migrated to MSO, now that no other site has customized offline page. Commented Aug 24, 2023 at 7:30
  • The best comment from reddit: “This is why you should keep a local copy.”
    – Mentalist
    Commented Aug 24, 2023 at 7:42
  • Re "I'm just documenting": What style guide prescribes the use of those down arrows? Commented Aug 24, 2023 at 10:41
  • The “How to offend This_is_NOT_a_forum Style Guide” prescribes it. Don't push me, or the horizontal rules will be replaced with GeoCities rainbow GIF dividers... 🌈😜
    – Mentalist
    Commented Aug 25, 2023 at 1:02

Not the answer you're looking for? Browse other questions tagged .