From 53a841d96a70d9868772cf6c862149df43ec2c8b Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 29 Dec 2009 20:20:51 +0100 Subject: [PATCH] Simplify exception reporting --- src/node.cc | 51 +++++++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/src/node.cc b/src/node.cc index 2781689..5c77e93 100644 --- a/src/node.cc +++ b/src/node.cc @@ -272,27 +272,27 @@ static void ReportException(TryCatch *try_catch) { if (raw_stack->IsString()) stack = Handle::Cast(raw_stack); } - // Print (filename):(line number): (message). - String::Utf8Value filename(message->GetScriptResourceName()); - const char* filename_string = ToCString(filename); - int linenum = message->GetLineNumber(); - fprintf(stderr, "%s:%i\n", filename_string, linenum); - // Print line of source code. - String::Utf8Value sourceline(message->GetSourceLine()); - const char* sourceline_string = ToCString(sourceline); - fprintf(stderr, "%s\n", sourceline_string); - // Print wavy underline (GetUnderline is deprecated). - int start = message->GetStartColumn(); - for (int i = 0; i < start; i++) { - fprintf(stderr, " "); - } - int end = message->GetEndColumn(); - for (int i = start; i < end; i++) { - fprintf(stderr, "^"); - } - fprintf(stderr, "\n"); - if (stack.IsEmpty()) { + // Print (filename):(line number): (message). + String::Utf8Value filename(message->GetScriptResourceName()); + const char* filename_string = ToCString(filename); + int linenum = message->GetLineNumber(); + fprintf(stderr, "%s:%i\n", filename_string, linenum); + // Print line of source code. + String::Utf8Value sourceline(message->GetSourceLine()); + const char* sourceline_string = ToCString(sourceline); + fprintf(stderr, "%s\n", sourceline_string); + // Print wavy underline (GetUnderline is deprecated). + int start = message->GetStartColumn(); + for (int i = 0; i < start; i++) { + fprintf(stderr, " "); + } + int end = message->GetEndColumn(); + for (int i = start; i < end; i++) { + fprintf(stderr, "^"); + } + fprintf(stderr, "\n"); + message->PrintCurrentStackTrace(stderr); } else { String::Utf8Value trace(stack); @@ -653,12 +653,11 @@ v8::Handle Compile(const v8::Arguments& args) { } static void OnFatalError(const char* location, const char* message) { -#define FATAL_ERROR "\033[1;31mV8 FATAL ERROR.\033[m" - if (location) - fprintf(stderr, FATAL_ERROR " %s %s\n", location, message); - else - fprintf(stderr, FATAL_ERROR " %s\n", message); - + if (location) { + fprintf(stderr, "FATAL ERROR: %s %s\n", location, message); + } else { + fprintf(stderr, "FATAL ERROR: %s\n", message); + } exit(1); } -- 2.7.4