Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlegendecas <legendecas@gmail.com>2019-12-01 19:13:33 +0300
committerRuben Bridgewater <ruben@bridgewater.de>2019-12-26 00:29:57 +0300
commit8baee5e31102f7e3d8b30245f060e37dbd221f41 (patch)
tree1408810d3366e4503cef47a10c3d029517b30ca6 /src
parent359f590b8da55e54b78f65857df6bb1bcef2d352 (diff)
src: prevent hard coding stack trace limit
Refer to Environment::stack_trace_limit() while printing fresh stacktraces in c++ land. PR-URL: https://github.com/nodejs/node/pull/30752 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Denys Otrishko <shishugi@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'src')
-rw-r--r--src/env.cc12
-rw-r--r--src/env.h2
-rw-r--r--src/node_errors.cc2
3 files changed, 9 insertions, 7 deletions
diff --git a/src/env.cc b/src/env.cc
index 80f200e8cd3..482d2191fa2 100644
--- a/src/env.cc
+++ b/src/env.cc
@@ -592,9 +592,9 @@ void Environment::PrintSyncTrace() const {
fprintf(
stderr, "(node:%d) WARNING: Detected use of sync API\n", uv_os_getpid());
- PrintStackTrace(
- isolate(),
- StackTrace::CurrentStackTrace(isolate(), 10, StackTrace::kDetailed));
+ PrintStackTrace(isolate(),
+ StackTrace::CurrentStackTrace(
+ isolate(), stack_trace_limit(), StackTrace::kDetailed));
}
void Environment::RunCleanup() {
@@ -949,9 +949,9 @@ void Environment::Exit(int exit_code) {
fprintf(
stderr, "WARNING: Exited the environment with code %d\n", exit_code);
- PrintStackTrace(
- isolate(),
- StackTrace::CurrentStackTrace(isolate(), 10, StackTrace::kDetailed));
+ PrintStackTrace(isolate(),
+ StackTrace::CurrentStackTrace(
+ isolate(), stack_trace_limit(), StackTrace::kDetailed));
}
if (is_main_thread()) {
stop_sub_worker_contexts();
diff --git a/src/env.h b/src/env.h
index 150cdf0fb1e..6d3522bcd5e 100644
--- a/src/env.h
+++ b/src/env.h
@@ -1234,6 +1234,8 @@ class Environment : public MemoryRetainer {
inline void modify_base_object_count(int64_t delta);
inline int64_t base_object_count() const;
+ inline int32_t stack_trace_limit() const { return 10; }
+
#if HAVE_INSPECTOR
void set_coverage_connection(
std::unique_ptr<profiler::V8CoverageConnection> connection);
diff --git a/src/node_errors.cc b/src/node_errors.cc
index 9474fbb1131..7e23fca28df 100644
--- a/src/node_errors.cc
+++ b/src/node_errors.cc
@@ -145,7 +145,7 @@ static std::string GetErrorSource(Isolate* isolate,
}
void PrintStackTrace(Isolate* isolate, Local<StackTrace> stack) {
- for (int i = 0; i < stack->GetFrameCount() - 1; i++) {
+ for (int i = 0; i < stack->GetFrameCount(); i++) {
Local<StackFrame> stack_frame = stack->GetFrame(isolate, i);
node::Utf8Value fn_name_s(isolate, stack_frame->GetFunctionName());
node::Utf8Value script_name(isolate, stack_frame->GetScriptName());