Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 7d31029a96da23db975c40909390806eefa33d86..75e15a454196573fce28a438032a7fe68e966ddb 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -535,6 +535,24 @@ Handle<String> Isolate::StackTraceString() { |
} |
+void Isolate::PushStackTraceAndDie(unsigned int magic, |
+ Object* object, |
+ Map* map, |
+ unsigned int magic2) { |
+ const int kMaxStackTraceSize = 8192; |
+ Handle<String> trace = StackTraceString(); |
+ char buffer[kMaxStackTraceSize]; |
+ int length = Min(kMaxStackTraceSize - 1, trace->length()); |
+ String::WriteToFlat(*trace, buffer, 0, length); |
+ buffer[length] = '\0'; |
+ OS::PrintError("Stacktrace (%x-%x) %p %p: %s\n", |
+ magic, magic2, |
+ static_cast<void*>(object), static_cast<void*>(map), |
+ buffer); |
+ OS::Abort(); |
+} |
+ |
+ |
void Isolate::CaptureAndSetCurrentStackTraceFor(Handle<JSObject> error_object) { |
if (capture_stack_trace_for_uncaught_exceptions_) { |
// Capture stack trace for a detailed exception message. |