summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2015-02-12 09:40:31 +0100
committerAndreas Rumpf <rumpf_a@web.de>2015-02-12 09:40:31 +0100
commitf7195becac2478bb43b2499c6ff99d5d4dd1977b (patch)
treea39f66c22431ad77cb2625f4d6f7e5c0fcac6b0b /lib
parenta5080556879a018f0aff1cd7ffadfcdb6cd4565e (diff)
parentd4c32102d829ffdbca117da27d2bbe876b4ad10f (diff)
downloadNim-f7195becac2478bb43b2499c6ff99d5d4dd1977b.tar.gz
Merge pull request #2053 from reactormonk/message-for-koch-temp
report how to create a compiler stacktrace #1280
Diffstat (limited to 'lib')
-rw-r--r--lib/system/excpt.nim14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/system/excpt.nim b/lib/system/excpt.nim
index 417a8634f..1b3471978 100644
--- a/lib/system/excpt.nim
+++ b/lib/system/excpt.nim
@@ -175,6 +175,8 @@ proc auxWriteStackTrace(f: PFrame, s: var string) =
       add(s, tempFrames[j].procname)
     add(s, "\n")
 
+proc stackTraceAvailable*(): bool
+
 when hasSomeStackTrace:
   proc rawWriteStackTrace(s: var string) =
     when NimStackTrace:
@@ -188,6 +190,18 @@ when hasSomeStackTrace:
       auxWriteStackTraceWithBacktrace(s)
     else:
       add(s, "No stack traceback available\n")
+  proc stackTraceAvailable(): bool =
+    when NimStackTrace:
+      if framePtr == nil:
+        result = false
+      else:
+        result = true
+    elif defined(nativeStackTrace) and nativeStackTraceSupported:
+      result = true
+    else:
+      result = false
+else:
+  proc stackTraceAvailable*(): bool = result = false
 
 proc quitOrDebug() {.inline.} =
   when not defined(endb):