Reviewers: Mads Sig Ager,
Description:
Print out line number and extension name when compilation of an extension
fails.
Please review this at http://codereview.chromium.org/8332029/
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
Affected files:
M src/bootstrapper.cc
M src/isolate.cc
Index: src/bootstrapper.cc
===================================================================
--- src/bootstrapper.cc (revision 9770)
+++ src/bootstrapper.cc (working copy)
@@ -38,6 +38,7 @@
#include "macro-assembler.h"
#include "natives.h"
#include "objects-visiting.h"
+#include "platform.h"
#include "snapshot.h"
#include "extensions/externalize-string-extension.h"
#include "extensions/gc-extension.h"
@@ -2006,6 +2007,12 @@
false);
ASSERT(isolate->has_pending_exception() != result);
if (!result) {
+ // We print out the name of the extension that fail to install.
+ // When an error is thrown during bootstrapping we automatically print
+ // the line number at which this happened to the console in the isolate
+ // error throwing functionality.
+ OS::PrintError("Error installing extension '%s'.\n",
+ current->extension()->name());
isolate->clear_pending_exception();
}
current->set_state(v8::INSTALLED);
Index: src/isolate.cc
===================================================================
--- src/isolate.cc (revision 9770)
+++ src/isolate.cc (working copy)
@@ -1072,6 +1072,16 @@
message_obj = MessageHandler::MakeMessageObject("uncaught_exception",
location, HandleVector<Object>(&exception_handle, 1),
stack_trace,
stack_trace_object);
+ } else if (location != NULL && !location->script().is_null()) {
+ // We are bootstrapping and caught and error where the location is
set
+ // and we have a script for the location.
+ // In this case we could have an extension (or an internal error
+ // somewhere) and we print out the line number at which the error
occured
+ // to the console for easier debugging.
+ int line_number = GetScriptLineNumberSafe(location->script(),
+ location->start_pos());
+ OS::PrintError("Extension or internal compilation error at
line %d.\n",
+ line_number);
}
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev