summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2017-01-31 12:59:12 +0100
committerAraq <rumpf_a@web.de>2017-01-31 12:59:12 +0100
commit082f6f15e75ce45ded4d47205420f4024293f16b (patch)
tree0de253d4304b1644215f3a8ca8b513a5a9137dbb /lib
parent51c764e048fd49647dcac15b793ff956ae93f320 (diff)
downloadNim-082f6f15e75ce45ded4d47205420f4024293f16b.tar.gz
dirty changes to Nim's memory tracker; requires cleanups
Diffstat (limited to 'lib')
-rw-r--r--lib/system/memtracker.nim7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/system/memtracker.nim b/lib/system/memtracker.nim
index 0e33e0ec0..219956012 100644
--- a/lib/system/memtracker.nim
+++ b/lib/system/memtracker.nim
@@ -62,12 +62,17 @@ proc addEntry(entry: LogEntry) =
         interesting = true
         break
     if interesting:
-      cprintf("interesting %s:%ld\n", entry.file, entry.line)
+      gLog.disabled = true
+      cprintf("interesting %s:%ld %s\n", entry.file, entry.line, entry.op)
+      let x = cast[proc() {.nimcall, tags: [], gcsafe, locks: 0.}](writeStackTrace)
+      x()
+      quit 1
       if gLog.count > high(gLog.data):
         gLogger(gLog)
         gLog.count = 0
       gLog.data[gLog.count] = entry
       inc gLog.count
+      gLog.disabled = false
 
 proc memTrackerWrite(address: pointer; size: int; file: cstring; line: int) {.compilerProc.} =
   addEntry LogEntry(op: "write", address: address,