Bring our native stack usage down.

I'd have preferred to have a 512-byte limit, but there are some monsters
in the verifier; 2000-line functions and the like. I'm also not policing
tests (except for one silly one). They can use all the stack they like.

This fixes the IntMath test (the stack overflow test was failing because
we were using more than 4KiB to throw!).

Change-Id: I7e53e2fde2b39fde1910f8ee5b1712e8a66069c7
diff --git a/src/thread.h b/src/thread.h
index e0c5d19..8fd0985 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -419,8 +419,12 @@
   // Set the stack end to that to be used during a stack overflow
   void SetStackEndForStackOverflow() {
     // During stack overflow we allow use of the full stack
-    CHECK(stack_end_ != stack_base_) << "Need to increase: kStackOverflowReservedBytes ("
-                                     << kStackOverflowReservedBytes << ")";
+    if (stack_end_ == stack_base_) {
+      DumpStack(std::cerr);
+      LOG(FATAL) << "Need to increase kStackOverflowReservedBytes (currently "
+                 << kStackOverflowReservedBytes << ")";
+    }
+
     stack_end_ = stack_base_;
   }