koch: better valgrind support
This commit is contained in:
parent
336a7c9b3f
commit
7ba565258d
2 changed files with 26 additions and 5 deletions
24
koch.nim
24
koch.nim
|
|
@ -513,12 +513,26 @@ proc pushCsources() =
|
||||||
setCurrentDir(cwd)
|
setCurrentDir(cwd)
|
||||||
|
|
||||||
proc valgrind(cmd: string) =
|
proc valgrind(cmd: string) =
|
||||||
exec("nim c " & cmd)
|
# somewhat hacky: '=' sign means "pass to valgrind" else "pass to Nim"
|
||||||
var i = cmd.len-1
|
let args = parseCmdLine(cmd)
|
||||||
while i >= 0 and cmd[i] != ' ': dec i
|
var nimcmd = ""
|
||||||
let file = if i >= 0: substr(cmd, i+1) else: cmd
|
var valcmd = ""
|
||||||
|
for i, a in args:
|
||||||
|
if i == args.len-1:
|
||||||
|
# last element is the filename:
|
||||||
|
valcmd.add ' '
|
||||||
|
valcmd.add changeFileExt(a, ExeExt)
|
||||||
|
nimcmd.add ' '
|
||||||
|
nimcmd.add a
|
||||||
|
elif '=' in a:
|
||||||
|
valcmd.add ' '
|
||||||
|
valcmd.add a
|
||||||
|
else:
|
||||||
|
nimcmd.add ' '
|
||||||
|
nimcmd.add a
|
||||||
|
exec("nim c" & nimcmd)
|
||||||
let supp = getAppDir() / "tools" / "nimgrind.supp"
|
let supp = getAppDir() / "tools" / "nimgrind.supp"
|
||||||
exec("valgrind --suppressions=" & supp & " " & changeFileExt(file, ""))
|
exec("valgrind --suppressions=" & supp & valcmd)
|
||||||
|
|
||||||
proc showHelp() =
|
proc showHelp() =
|
||||||
quit(HelpText % [VersionAsString & spaces(44-len(VersionAsString)),
|
quit(HelpText % [VersionAsString & spaces(44-len(VersionAsString)),
|
||||||
|
|
|
||||||
|
|
@ -12,3 +12,10 @@
|
||||||
fun:markStackAndRegisters*
|
fun:markStackAndRegisters*
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
unmarkStackAndRegisters_Value8
|
||||||
|
Memcheck:Value8
|
||||||
|
...
|
||||||
|
fun:unmarkStackAndRegisters_zoTIuavlrCHyw3B8MBaLJA_6
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue