From c1f56293c7e830b336f504b497f8523182675987 Mon Sep 17 00:00:00 2001 From: Tim Felgentreff <timfelgentreff@gmail.com> Date: Sat, 19 Feb 2022 13:27:56 +0100 Subject: [PATCH] reduce backtrace size --- src/action/actions.cpp | 2 +- src/include/st_backtrace.h | 12 +++--------- src/stratagus/util.cpp | 2 +- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/action/actions.cpp b/src/action/actions.cpp index fb7865a69..bef476612 100644 --- a/src/action/actions.cpp +++ b/src/action/actions.cpp @@ -579,7 +579,7 @@ static void UnitActionsEachCycle(UNITP_ITERATOR begin, UNITP_ITERATOR end) if (EnableDebugPrint) { fprintf(stderr, ", after: %x (unit: %d:%s, order: %d, refs: %d)\n", SyncHash, UnitNumber(unit), unit.Type->Ident.c_str(), unit.Orders.empty() ? -1 : unit.CurrentAction(), unit.Refs); - print_backtrace(); + print_backtrace(8); fflush(stderr); } } diff --git a/src/include/st_backtrace.h b/src/include/st_backtrace.h index 8e4709007..1dd4ec7b8 100644 --- a/src/include/st_backtrace.h +++ b/src/include/st_backtrace.h @@ -16,13 +16,12 @@ inline void print_backtrace(int sz = 100) { #elif defined(USE_WIN32) -#if 1 // the below would mean we give up XP support #include "windows.h" #include "winbase.h" #include "dbghelp.h" #include "process.h" -inline void print_backtrace(void) { +inline void print_backtrace(int sz = 100) { unsigned int i; void *stack[100]; unsigned short frames; @@ -34,7 +33,7 @@ inline void print_backtrace(void) { process = GetCurrentProcess(); SymInitialize(process, NULL, TRUE); - frames = CaptureStackBackTrace(0, 100, stack, NULL); + frames = CaptureStackBackTrace(0, sz, stack, NULL); fprintf(stderr, "backtrace returned %d addresses\n", frames); symbol = (SYMBOL_INFO*)calloc(sizeof(SYMBOL_INFO) + 256 * sizeof(char), 1); symbol->MaxNameLen = 1024; @@ -58,17 +57,12 @@ inline void print_backtrace(void) { } free(symbol); } -#else -inline void print_backtrace(void) { -} -#endif #else -inline void print_backtrace(void) { +inline void print_backtrace(int sz = 100) { } #endif - #endif diff --git a/src/stratagus/util.cpp b/src/stratagus/util.cpp index 26c632d5d..3ec394514 100644 --- a/src/stratagus/util.cpp +++ b/src/stratagus/util.cpp @@ -87,7 +87,7 @@ int SyncRand() if (EnableDebugPrint) { fprintf(stderr, "GameCycle: %lud, seed: %x, Sync rand: %d\n", GameCycle, SyncRandSeed, val); - print_backtrace(); + print_backtrace(8); fflush(stderr); } return val;