diff options
author | legendecas <legendecas@gmail.com> | 2021-06-10 23:55:54 +0800 |
---|---|---|
committer | Michaƫl Zasso <targos@protonmail.com> | 2021-09-03 14:38:33 +0200 |
commit | f69c934ad4f7fe78decca7cfd796ba887246fa75 (patch) | |
tree | 3f3b7c7e1b8ae01eea09aed667b14c403343ea9c /src | |
parent | 99493b07d400ecaf813433a128c60ec90a3c68fc (diff) | |
download | node-new-f69c934ad4f7fe78decca7cfd796ba887246fa75.tar.gz |
report: generates report on threads with no isolates
PR-URL: https://github.com/nodejs/node/pull/38994
Backport-PR-URL: https://github.com/nodejs/node/pull/39515
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/node_errors.cc | 9 | ||||
-rw-r--r-- | src/node_report.cc | 20 |
2 files changed, 14 insertions, 15 deletions
diff --git a/src/node_errors.cc b/src/node_errors.cc index 786e4153f2..c05bf1732b 100644 --- a/src/node_errors.cc +++ b/src/node_errors.cc @@ -424,13 +424,10 @@ void OnFatalError(const char* location, const char* message) { } Isolate* isolate = Isolate::GetCurrent(); - // TODO(legendecas): investigate failures on triggering node-report with - // nullptr isolates. - if (isolate == nullptr) { - fflush(stderr); - ABORT(); + Environment* env = nullptr; + if (isolate != nullptr) { + env = Environment::GetCurrent(isolate); } - Environment* env = Environment::GetCurrent(isolate); bool report_on_fatalerror; { Mutex::ScopedLock lock(node::per_process::cli_options_mutex); diff --git a/src/node_report.cc b/src/node_report.cc index 13f87b1e52..a91d16d5f1 100644 --- a/src/node_report.cc +++ b/src/node_report.cc @@ -267,20 +267,22 @@ static void WriteNodeReport(Isolate* isolate, PrintVersionInformation(&writer); writer.json_objectend(); - writer.json_objectstart("javascriptStack"); - // Report summary JavaScript error stack backtrace - PrintJavaScriptErrorStack(&writer, isolate, error, trigger); + if (isolate != nullptr) { + writer.json_objectstart("javascriptStack"); + // Report summary JavaScript error stack backtrace + PrintJavaScriptErrorStack(&writer, isolate, error, trigger); - // Report summary JavaScript error properties backtrace - PrintJavaScriptErrorProperties(&writer, isolate, error); - writer.json_objectend(); // the end of 'javascriptStack' + // Report summary JavaScript error properties backtrace + PrintJavaScriptErrorProperties(&writer, isolate, error); + writer.json_objectend(); // the end of 'javascriptStack' + + // Report V8 Heap and Garbage Collector information + PrintGCStatistics(&writer, isolate); + } // Report native stack backtrace PrintNativeStack(&writer); - // Report V8 Heap and Garbage Collector information - PrintGCStatistics(&writer, isolate); - // Report OS and current thread resource usage PrintResourceUsage(&writer); |