--fullpath-after=:string的默认 值是“don't show source paths”,即在堆栈追踪过程中只显示文件名,而不显示源文件的完全路径。对于大的项目,众多源文件分布在不同路径下,这个默认行为就不方便了。设置了string后,将会显示每个源文件的路径,但若路径中含有string的内容,则路径中与string的重合部分直至路径开头(根目录)将被省略。如一个源文件的全路径为/home/janedoe/ blah/src/foo/bar/xyzzy.c,选项设置为--fullpath-after=/home/janedoe/blash/src/,则显示的文件名将是foo/bar/xyzzy.c。由于string不需要加路径前缀,故--fullpath-after=/blash/src/,效果是一样的。若要显示全路径的话,不要为string赋值即可,即--fullpath-after=。这个选项还可以多次使用,以它们在命令行出现的次序为先后顺序,依次按照上面的规则对路径进行截断。
--gen-suppressions=:若选择yes,则每显示一条error,valgrind就暂停,并打印一行:----Print suppression ?---[Return/N/n?Y/y/C/c]---(y=yes,n=no,c=cancle)这条提示信息与下面的--db-attach选项相同,选y,则打印针对这个error的suppressions。若该选项为all,则打印每个error的suppression,不在询问了。Also, the suppression name is given as ; the name doesn't really matter, it's only used with the -v option which prints out all used suppression records.
--db-attach=:若选yes,则每显示一条error,valgrind就暂停,并打印一行:----Attach to debugger ?---[RegurnN/n/Y/y/C/c]---。若选y,则在此处启动调试器,调试完了要退出调试器,valgrind才可继续。若你用的是GDB,则选项--vgdb=yes或ful会使得调试器功能更强(它启动了valgrind内部的gdbsever,几乎模拟了 GDB的全部功能)。
--main-stacksize=:规定了主线程的栈大小。默认情况用ulimit值,一般是16MB或低一点。一般用8~16M能满足绝大部分应用程序的需求。Linux上可最大申请2GB。若valgrid无法分配这么多空间,便会终止。这个选项只影响initial thread,对其他线程栈无影响。 You will have to work out the --main-stacksize value for yourself (usually, if your applications segfaults). But Valgrind will tell you the needed --max-stackframe size, if necessary.