From e2d80b15a6963f4a1ea64c32d7aeec9fcb862260 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Wed, 23 Sep 2020 10:01:52 +0200 Subject: [PATCH] finish the stacktraces.nim implementation [backport:1.2] (#15393) --- compiler/condsyms.nim | 1 + lib/system/stacktraces.nim | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/compiler/condsyms.nim b/compiler/condsyms.nim index d99b8b7e65..7dc1d183eb 100644 --- a/compiler/condsyms.nim +++ b/compiler/condsyms.nim @@ -120,3 +120,4 @@ proc initDefines*(symbols: StringTableRef) = defineSymbol("nimDoesntTrackDefects") defineSymbol("nimHasLentIterators") defineSymbol("nimHasDeclaredMagic") + defineSymbol("nimHasStacktracesModule") diff --git a/lib/system/stacktraces.nim b/lib/system/stacktraces.nim index dce25fdc08..62de272603 100644 --- a/lib/system/stacktraces.nim +++ b/lib/system/stacktraces.nim @@ -22,26 +22,26 @@ when defined(nimStackTraceOverride): ## This is the same as the type ``uintptr_t`` in C. StackTraceOverrideGetTracebackProc* = proc (): string {. - nimcall, gcsafe, locks: 0, raises: [], tags: [].} + nimcall, gcsafe, locks: 0, raises: [], tags: [], noinline.} StackTraceOverrideGetProgramCountersProc* = proc (maxLength: cint): seq[cuintptr_t] {. - nimcall, gcsafe, locks: 0, raises: [], tags: [].} + nimcall, gcsafe, locks: 0, raises: [], tags: [], noinline.} StackTraceOverrideGetDebuggingInfoProc* = proc (programCounters: seq[cuintptr_t], maxLength: cint): seq[StackTraceEntry] {. - nimcall, gcsafe, locks: 0, raises: [], tags: [].} + nimcall, gcsafe, locks: 0, raises: [], tags: [], noinline.} # Default procedures (not normally used, because people opting in on this # override are supposed to register their own versions). var stackTraceOverrideGetTraceback: StackTraceOverrideGetTracebackProc = - proc (): string {.nimcall, gcsafe, locks: 0, raises: [], tags: [].} = + proc (): string {.nimcall, gcsafe, locks: 0, raises: [], tags: [], noinline.} = discard #result = "Stack trace override procedure not registered.\n" stackTraceOverrideGetProgramCounters: StackTraceOverrideGetProgramCountersProc = - proc (maxLength: cint): seq[cuintptr_t] {.nimcall, gcsafe, locks: 0, raises: [], tags: [].} = + proc (maxLength: cint): seq[cuintptr_t] {.nimcall, gcsafe, locks: 0, raises: [], tags: [], noinline.} = discard stackTraceOverrideGetDebuggingInfo: StackTraceOverrideGetDebuggingInfoProc = proc (programCounters: seq[cuintptr_t], maxLength: cint): seq[StackTraceEntry] {. - nimcall, gcsafe, locks: 0, raises: [], tags: [].} = + nimcall, gcsafe, locks: 0, raises: [], tags: [], noinline.} = discard # Custom procedure registration.