valgrind support for nim

This commit is contained in:
Andreas Rumpf
2017-03-14 08:36:57 +01:00
parent d59441340d
commit 15a8996d57
2 changed files with 23 additions and 0 deletions

View File

@@ -512,6 +512,14 @@ proc pushCsources() =
finally:
setCurrentDir(cwd)
proc valgrind(cmd: string) =
exec("nim c " & cmd)
var i = cmd.len-1
while i >= 0 and cmd[i] != ' ': dec i
let file = if i >= 0: substr(cmd, i+1) else: cmd
let supp = getAppDir() / "tools" / "nimgrind.supp"
exec("valgrind --suppressions=" & supp & " " & changeFileExt(file, ""))
proc showHelp() =
quit(HelpText % [VersionAsString & spaces(44-len(VersionAsString)),
CompileDate, CompileTime], QuitSuccess)
@@ -548,5 +556,6 @@ of cmdArgument:
of "nimsuggest": bundleNimsuggest(buildExe=true)
of "tools": buildTools(existsDir(".git"))
of "pushcsource", "pushcsources": pushCsources()
of "valgrind": valgrind(op.cmdLineRest)
else: showHelp()
of cmdEnd: showHelp()

14
tools/nimgrind.supp Normal file
View File

@@ -0,0 +1,14 @@
{
markstackandregisters_Cond
Memcheck:Cond
...
fun:markStackAndRegisters*
...
}
{
markstackandregisters_Value8
Memcheck:Value8
...
fun:markStackAndRegisters*
...
}