diff options
author | Araq <rumpf_a@web.de> | 2017-01-31 12:59:12 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2017-01-31 12:59:12 +0100 |
commit | 082f6f15e75ce45ded4d47205420f4024293f16b (patch) | |
tree | 0de253d4304b1644215f3a8ca8b513a5a9137dbb /lib | |
parent | 51c764e048fd49647dcac15b793ff956ae93f320 (diff) | |
download | Nim-082f6f15e75ce45ded4d47205420f4024293f16b.tar.gz |
dirty changes to Nim's memory tracker; requires cleanups
Diffstat (limited to 'lib')
-rw-r--r-- | lib/system/memtracker.nim | 7 |
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, |