title: call stack corruption in win32 vs2010 null dereference, but not in x64
body: <p>I create a simple win32 console program with vs2010 and create a null dereference:</p>
  
  <pre><code>int _tmain(int argc, _TCHAR* argv[])
  {
      if (*(int*)(NULL) == 5) {
          printf("foo");
      }
      return 0;
  }
  </code></pre>
  
  <p>When I run this with <code>x64</code> configuration I get an "Unhandled Exception" and valid call stack in the debugger.  When I switch to <code>win32</code>, I still get an "Unhandled Exception", however, the stack is invalid.  I get the following:</p>
  
  <pre><code>ntdll.dll!770a15de()    
  [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
  ntdll.dll!770a15de()    
  ntdll.dll!7709014e()    
  &gt;msvcr100d.dll!_heap_alloc_dbg_impl(...)
  ffffffff()  
  </code></pre>
  
  <p>Any ideas what is going on here and how I can correct it?</p>