Package: valgrind Version: 1:3.24.0-2 Severity: minor Tags: patch * What led up to the situation?
Checking for defects with a new version test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z < "man page" [Use "grep -e ' $' -e '\\~$' <file>" to find obvious trailing spaces.] ["test-groff" is a script in the repository for "groff"; is not shipped] (local copy and "troff" slightly changed by me). [The fate of "test-nroff" was decided in groff bug #55941.] * What was the outcome of this action? troff:<stdin>:49: warning: trailing space in the line [...] an.tmac:<stdin>:1307: style: 1 leading space(s) on input line [...] an.tmac:<stdin>:2507: style: 1 leading space(s) on input line troff:<stdin>:2507: warning: trailing space in the line an.tmac:<stdin>:2512: style: 1 leading space(s) on input line troff:<stdin>:2512: warning: trailing space in the line an.tmac:<stdin>:2547: style: 1 leading space(s) on input line troff:<stdin>:2547: warning: trailing space in the line [...] * What outcome did you expect instead? No output (no warnings). -.- General remarks and further material, if a diff-file exist, are in the attachments. -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 6.12.20-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: sysvinit (via /sbin/init) Versions of packages valgrind depends on: ii libc6 2.41-6 ii libc6-dbg 2.41-6 Versions of packages valgrind recommends: ii gdb 16.2-8 ii python3 3.13.2-2 pn valgrind-dbg <none> Versions of packages valgrind suggests: pn kcachegrind <none> pn valgrind-mpi <none> -- no debconf information
Input file is valgrind.1 Output from "mandoc -T lint valgrind.1": (shortened list) 1 input text line longer than 80 bytes: $DEBUGINFOD_VERBOSE\... [...] 18 skipping paragraph macro: PP after SH -.-. Output from "test-nroff -mandoc -t -ww -z valgrind.1": (shortened list) 6 cannot break line 152 line(s) with a trailing space -.-. Show if docman-to-man created this. Who is actually creating this man page? Debian or upstream? Is the generating software out of date? 4:.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.-. Remove space characters (whitespace) at the end of lines. Use "git apply ... --whitespace=fix" to fix extra space issues, or use global configuration "core.whitespace". Number of lines affected is 6 -.-. Change two HYPHEN-MINUSES (code 0x2D) to an em-dash (\(em), if one is intended. " \(em " creates a too big gap in the text (in "troff"). An en-dash is usually surrounded by a space, while an em-dash is used without spaces. "man" (1 byte characters in input) transforms an en-dash (\(en) to one HYPHEN-MINUS, and an em-dash to two HYPHEN-MINUSES without considering the space around it. If "--" are two single "-" (begin of an option or end of options) then use "\-\-". valgrind.1:347:--log-file valgrind.1:814:--log-file valgrind.1:1915:--log-file -.-. Use the word (in)valid instead of (il)legal, if not related to legal matters. See "www.gnu.org/prep/standards". Think about translations into other languages! valgrind.1:455:Enable/disable printing of illegal instruction diagnostics\&. Enabled by default, but defaults to disabled when valgrind.1:459:When enabled, a warning message will be printed, along with some diagnostics, whenever an instruction is encountered that Valgrind cannot decode or translate, before the program is given a SIGILL signal\&. Often an illegal instruction indicates a bug in the program or missing support for the particular instruction in Valgrind\&. But some programs do deliberately try to execute an instruction that might be missing and trap the SIGILL signal to detect processor features\&. Using this flag makes it possible to avoid the diagnostic output that you would otherwise get in such cases\&. valgrind.1:1955:\fIyes\fR, such loads do not produce an address error\&. Instead, loaded bytes originating from illegal addresses are marked as uninitialised, and those corresponding to legal addresses are handled in the normal way\&. valgrind.1:1958:\fIno\fR, loads from partially invalid addresses are treated the same as loads from completely invalid addresses: an illegal\-address error is issued, and the resulting bytes are marked as initialised\&. -.-. Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-), if it is in front of a name for an option, is a symbol for standard input, is a single character used to indicate an option, or is in the NAME section (man-pages(7)). N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen (0x2010, groff \[u2010] or \[hy]) in the output. 347:--log-file 814:--log-file 1915:--log-file -.-. Strings longer than 3/4 of a standard line length (80). Use "\:" to split the string at the end of an output line, for example a long URL (web address) 205 \fB\-\-vgdb\-stop\-at=startup,exit,abexit,valgrindabexit\fR\&. 1316 \fI\-\-require\-text\-symbol=:*libgomp*so*:annotated_for_helgrind_3_6\fR 1326 \fB\-\-soname\-synonyms=syn1=pattern1,syn2=pattern2,\&.\&.\&.\fR 1656 \fB\-\-show\-leak\-kinds=definite,indirect,possible,reachable\fR\&. 1708 \fB\-\-leak\-check\-heuristics=stdstring,length64,newarray,multipleinheritance\fR\&. 1981 \fB\-\-keep\-stacktraces=alloc|free|alloc\-and\-free|alloc\-then\-free|none [default: alloc\-and\-free] \fR 2981 \%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver 2986 \%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.vgdb 2991 \%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.valgrind-monitor-commands 2996 \%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.comment 3001 \%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.pthreads_perf_sched 3011 \%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.xtree -.-. Wrong distance (not two spaces) between sentences in the input file. Separate the sentences and subordinate clauses; each begins on a new line. See man-pages(7) ("Conventions for source file layout") and "info groff" ("Input Conventions"). The best procedure is to always start a new sentence on a new line, at least, if you are typing on a computer. Remember coding: Only one command ("sentence") on each (logical) line. E-mail: Easier to quote exactly the relevant lines. Generally: Easier to edit the sentence. Patches: Less unaffected text. Search for two adjacent words is easier, when they belong to the same line, and the same phrase. The amount of space between sentences in the output can then be controlled with the ".ss" request. Mark a final abbreviation point as such by suffixing it with "\&". Some sentences (etc.) do not begin on a new line. Split (sometimes) lines after a punctuation mark; before a conjunction. Lines with only one (or two) space(s) between sentences could be split, so latter sentences begin on a new line. Use #!/usr/bin/sh sed -e '/^\./n' \ -e 's/\([[:alpha:]]\)\. */\1.\n/g' $1 to split lines after a sentence period. Check result with the difference between the formatted outputs. See also the attachment "general.bugs" [List of affected lines removed.] -.-. Split lines longer than 80 characters into two or more lines. Appropriate break points are the end of a sentence and a subordinate clause; after punctuation marks. Add "\:" to split the string for the output, "\<newline>" in the source. [List of affected lines removed.] Longest line is number 1112 with 1607 characters \fBfallback\-llsc: \fR(MIPS and ARM64 only): Enables an alternative implementation of Load\-Linked (LL) and Store\-Conditional (SC) instructions\&. The standard implementation gives more correct behaviour, but can cause indefinite looping on certain processor implementations that are intolerant of extra memory references between LL and SC\&. So far this is known only to happen on Cavium 3 cores\&. You should not need to use this flag, since the relevant cores are detected at startup and the alternative implementation is automatically enabled if necessary\&. There is no equivalent anti\-flag: you cannot force\-disable the alternative implementation, if it is automatically enabled\&. The underlying problem exists because the "standard" implementation of LL and SC is done by copying through LL and SC instructions into the instrumented code\&. However, tools may insert extra instrumentation memory references in between the LL and SC instructions\&. These memory references are not present in the original uninstrumented code, and their presence in the instrumented code can cause the SC instructions to persistently fail, leading to indefinite looping in LL\-SC blocks\&. The alternative implementation gives correct behaviour of LL and SC instructions between threads in a process, up to and including the ABA scenario\&. It also gives correct behaviour between a Valgrinded thread and a non\-Valgrinded thread running in a different process, that communicate via shared memory, but only up to and including correct CAS behaviour \-\- in this case the ABA scenario may not be correctly handled\&. -.-. The name of a man page is typeset in bold and the section in roman (see man-pages(7)). 2956:cg_annotate(1), callgrind_annotate(1), callgrind_control(1), ms_print(1), -.-. Put a parenthetical sentence, phrase on a separate line, if not part of a code. See man-pages(7), item "semantic newline". [List of affected lines removed.] -.-. Test nr. 68: Change a HYPHEN-MINUS (code 0x55, 2D) to a dash (\-, minus) if it matches "[[:alph:]]-[[:alpha:]]" in the name of an option). Facilitates the copy and paste of a) an option in UTF-8 text b) web addresses (URL). Is not needed in ordinary words like "mother-in-law", that are not copied and pasted to a command line (which needs ASCII code) 347:--log-file 814:--log-file 1915:--log-file 2981:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver 2986:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.vgdb 2991:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.valgrind-monitor-commands -.-. Use a hyphen between a number and the unit (name) "bit", see "man-pages(7)", item "Terms to avoid". 2735:on 64bit platforms and 2737:on 32bit platforms\&. -.-. Protect "^From " from forcing a mail software to use "quoted-printable" encoding, by adding "\&" in front of it. 1504:From the progress of these, it is possible to observe: -.-. No need for '\&' to be in front of a period (.), if there is a character in front of it. Remove with "sed -e 's/\\&\././g'". [List of affected lines removed.] -.-. Lines longer than about(?) 1023 forces a mail program to use quoted-printable encoding which is bad. Translater program is unusable. Line 1112, length 1607 \fBfallback\-llsc: \fR(MIPS and ARM64 only): Enables an alternative implementation of Load\-Linked (LL) and Store\-Conditional (SC) instructions\&. The standard implementation gives more correct behaviour, but can cause indefinite looping on certain processor implementations that are intolerant of extra memory references between LL and SC\&. So far this is known only to happen on Cavium 3 cores\&. You should not need to use this flag, since the relevant cores are detected at startup and the alternative implementation is automatically enabled if necessary\&. There is no equivalent anti\-flag: you cannot force\-disable the alternative implementation, if it is automatically enabled\&. The underlying problem exists because the "standard" implementation of LL and SC is done by copying through LL and SC instructions into the instrumented code\&. However, tools may insert extra instrumentation memory references in between the LL and SC instructions\&. These memory references are not present in the original uninstrumented code, and their presence in the instrumented code can cause the SC instructions to persistently fail, leading to indefinite looping in LL\-SC blocks\&. The alternative implementation gives correct behaviour of LL and SC instructions between threads in a process, up to and including the ABA scenario\&. It also gives correct behaviour between a Valgrinded thread and a non\-Valgrinded thread running in a different process, that communicate via shared memory, but only up to and including correct CAS behaviour \-\- in this case the ABA scenario may not be correctly handled\&. -.-. Only one space character is after a possible end of sentence (after a punctuation, that can end a sentence). [List of affected lines removed.] -.-. Put a subordinate sentence (after a comma) on a new line. [List of affected lines removed.] Remove quotes when there is a printable but no space character between them and the quotes are not for emphasis (markup), for example as an argument to a macro. valgrind.1:10:.TH "VALGRIND" "1" "01/22/2025" "Release 3\&.24\&.0" "valgrind" valgrind.1:30:.SH "NAME" valgrind.1:32:.SH "SYNOPSIS" valgrind.1:35:.SH "DESCRIPTION" valgrind.1:2936:.SH "DEBUGINFOD" valgrind.1:2967:.SH "AUTHOR" valgrind.1:2972:.SH "NOTES" -.-. Use ".na" (no adjustment) instead of ".ad l" (and ".ad" to begin the same adjustment again as before). 26:.ad l -.-. Section headings (.SH and .SS) do not need quoting their arguments. 30:.SH "NAME" 32:.SH "SYNOPSIS" 35:.SH "DESCRIPTION" 45:.SH "TOOL SELECTION OPTIONS" 54:.SH "BASIC OPTIONS" 297:.SH "ERROR\-RELATED OPTIONS" 755:.SH "MALLOC()\-RELATED OPTIONS" 826:.SH "UNCOMMON OPTIONS" 1584:.SH "DEBUGGING VALGRIND OPTIONS" 1589:.SH "MEMCHECK OPTIONS" 2125:.SH "CACHEGRIND OPTIONS" 2176:.SH "CALLGRIND OPTIONS" 2343:.SH "HELGRIND OPTIONS" 2490:.SH "DRD OPTIONS" 2667:.SH "MASSIF OPTIONS" 2804:.SH "BBV OPTIONS" 2835:.SH "LACKEY OPTIONS" 2936:.SH "DEBUGINFOD" 2954:.SH "SEE ALSO" 2967:.SH "AUTHOR" 2972:.SH "NOTES" -.-. Remove excessive "\&" when it has no functional purpose. 2952:\m[blue]\fBElfutils Debuginfod\fR\m[]\&\s-2\u[1]\d\s+2 2960:\m[blue]\fBDebugging your program using Valgrind\*(Aqs gdbserver and GDB\fR\m[]\&\s-2\u[2]\d\s+2 2961:\m[blue]\fBvgdb\fR\m[]\&\s-2\u[3]\d\s+2, 2962:\m[blue]\fBValgrind monitor commands\fR\m[]\&\s-2\u[4]\d\s+2, 2963:\m[blue]\fBThe Commentary\fR\m[]\&\s-2\u[5]\d\s+2, 2964:\m[blue]\fBScheduling and Multi\-Thread Performance\fR\m[]\&\s-2\u[6]\d\s+2, 2965:\m[blue]\fBCachegrind: a cache and branch\-prediction profiler\fR\m[]\&\s-2\u[7]\d\s+2\&. 2966:\m[blue]\fBExecution Trees\fR\m[]\&\s-2\u[8]\d\s+2 -.-. Use "\-" instead of "-" in web addresses. 16:.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html 2981:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver 2986:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.vgdb 2991:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.valgrind-monitor-commands 2996:\%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.comment 3001:\%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.pthreads_perf_sched 3006:\%http://www.valgrind.org/docs/manual/cg-manual.html 3011:\%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.xtree -.-. Put a (long) web address on a new line to reduce the posibility of splitting the address between two output lines. Or inhibit hyphenation with "\%" in front of the name. 44:http://www\&.valgrind\&.org/docs/manual/index\&.html\&. 2959:http://www\&.valgrind\&.org/docs/manual/index\&.html, 2976:\%https://sourceware.org/elfutils/Debuginfod.html 2981:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver 2986:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.vgdb 2991:\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.valgrind-monitor-commands 2996:\%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.comment 3001:\%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.pthreads_perf_sched 3006:\%http://www.valgrind.org/docs/manual/cg-manual.html 3011:\%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.xtree -.-. Output from "test-groff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z ": troff:<stdin>:49: warning: trailing space in the line troff:<stdin>:85: warning: trailing space in the line troff:<stdin>:102: warning: trailing space in the line troff:<stdin>:114: warning: trailing space in the line troff:<stdin>:120: warning: trailing space in the line troff:<stdin>:128: warning: trailing space in the line troff:<stdin>:146: warning: trailing space in the line troff:<stdin>:154: warning: trailing space in the line troff:<stdin>:221: warning: trailing space in the line troff:<stdin>:233: warning: trailing space in the line troff:<stdin>:238: warning: trailing space in the line troff:<stdin>:243: warning: trailing space in the line troff:<stdin>:282: warning: trailing space in the line troff:<stdin>:291: warning: trailing space in the line troff:<stdin>:301: warning: trailing space in the line troff:<stdin>:332: warning: trailing space in the line troff:<stdin>:338: warning: trailing space in the line troff:<stdin>:351: warning: trailing space in the line troff:<stdin>:360: warning: trailing space in the line troff:<stdin>:367: warning: trailing space in the line troff:<stdin>:374: warning: trailing space in the line troff:<stdin>:381: warning: trailing space in the line troff:<stdin>:406: warning: trailing space in the line troff:<stdin>:411: warning: trailing space in the line troff:<stdin>:416: warning: trailing space in the line troff:<stdin>:453: warning: trailing space in the line troff:<stdin>:462: warning: trailing space in the line troff:<stdin>:470: warning: trailing space in the line troff:<stdin>:486: warning: trailing space in the line troff:<stdin>:522: warning: trailing space in the line troff:<stdin>:574: warning: trailing space in the line troff:<stdin>:582: warning: trailing space in the line troff:<stdin>:587: warning: trailing space in the line troff:<stdin>:627: warning: trailing space in the line troff:<stdin>:633: warning: trailing space in the line troff:<stdin>:683: warning: trailing space in the line troff:<stdin>:694: warning: trailing space in the line troff:<stdin>:729: warning: trailing space in the line troff:<stdin>:735: warning: trailing space in the line troff:<stdin>:761: warning: trailing space in the line troff:<stdin>:768: warning: trailing space in the line troff:<stdin>:777: warning: trailing space in the line troff:<stdin>:806: warning: trailing space in the line troff:<stdin>:830: warning: trailing space in the line troff:<stdin>:861: warning: trailing space in the line troff:<stdin>:872: warning: trailing space in the line troff:<stdin>:876: warning: trailing space in the line troff:<stdin>:897: warning: trailing space in the line troff:<stdin>:902: warning: trailing space in the line troff:<stdin>:912: warning: trailing space in the line troff:<stdin>:924: warning: trailing space in the line troff:<stdin>:947: warning: trailing space in the line troff:<stdin>:959: warning: trailing space in the line troff:<stdin>:964: warning: trailing space in the line troff:<stdin>:969: warning: trailing space in the line troff:<stdin>:974: warning: trailing space in the line troff:<stdin>:995: warning: trailing space in the line troff:<stdin>:1014: warning: trailing space in the line troff:<stdin>:1026: warning: trailing space in the line troff:<stdin>:1038: warning: trailing space in the line troff:<stdin>:1050: warning: trailing space in the line troff:<stdin>:1062: warning: trailing space in the line troff:<stdin>:1078: warning: trailing space in the line troff:<stdin>:1100: warning: trailing space in the line troff:<stdin>:1116: warning: trailing space in the line troff:<stdin>:1124: warning: trailing space in the line troff:<stdin>:1227: warning: trailing space in the line troff:<stdin>:1242: warning: trailing space in the line troff:<stdin>:1251: warning: trailing space in the line troff:<stdin>:1260: warning: trailing space in the line troff:<stdin>:1272: warning: trailing space in the line troff:<stdin>:1284: warning: trailing space in the line an.tmac:<stdin>:1307: style: 1 leading space(s) on input line troff:<stdin>:1399: warning: trailing space in the line troff:<stdin>:1591: warning: trailing space in the line troff:<stdin>:1610: warning: trailing space in the line troff:<stdin>:1628: warning: trailing space in the line troff:<stdin>:1672: warning: trailing space in the line troff:<stdin>:1682: warning: trailing space in the line troff:<stdin>:1726: warning: trailing space in the line troff:<stdin>:1776: warning: trailing space in the line troff:<stdin>:1906: warning: trailing space in the line troff:<stdin>:1923: warning: trailing space in the line troff:<stdin>:1931: warning: trailing space in the line troff:<stdin>:1952: warning: trailing space in the line troff:<stdin>:1963: warning: trailing space in the line troff:<stdin>:1981: warning: trailing space in the line troff:<stdin>:2013: warning: trailing space in the line troff:<stdin>:2025: warning: trailing space in the line troff:<stdin>:2034: warning: trailing space in the line troff:<stdin>:2046: warning: trailing space in the line troff:<stdin>:2054: warning: trailing space in the line troff:<stdin>:2088: warning: trailing space in the line troff:<stdin>:2102: warning: trailing space in the line troff:<stdin>:2107: warning: trailing space in the line troff:<stdin>:2117: warning: trailing space in the line troff:<stdin>:2127: warning: trailing space in the line troff:<stdin>:2140: warning: trailing space in the line troff:<stdin>:2145: warning: trailing space in the line troff:<stdin>:2150: warning: trailing space in the line troff:<stdin>:2159: warning: trailing space in the line troff:<stdin>:2165: warning: trailing space in the line troff:<stdin>:2171: warning: trailing space in the line troff:<stdin>:2178: warning: trailing space in the line troff:<stdin>:2191: warning: trailing space in the line troff:<stdin>:2196: warning: trailing space in the line troff:<stdin>:2201: warning: trailing space in the line troff:<stdin>:2206: warning: trailing space in the line troff:<stdin>:2211: warning: trailing space in the line troff:<stdin>:2216: warning: trailing space in the line troff:<stdin>:2223: warning: trailing space in the line troff:<stdin>:2229: warning: trailing space in the line troff:<stdin>:2235: warning: trailing space in the line troff:<stdin>:2241: warning: trailing space in the line troff:<stdin>:2255: warning: trailing space in the line troff:<stdin>:2296: warning: trailing space in the line troff:<stdin>:2302: warning: trailing space in the line troff:<stdin>:2307: warning: trailing space in the line troff:<stdin>:2328: warning: trailing space in the line troff:<stdin>:2333: warning: trailing space in the line troff:<stdin>:2339: warning: trailing space in the line troff:<stdin>:2345: warning: trailing space in the line troff:<stdin>:2352: warning: trailing space in the line troff:<stdin>:2357: warning: trailing space in the line troff:<stdin>:2379: warning: trailing space in the line troff:<stdin>:2388: warning: trailing space in the line troff:<stdin>:2443: warning: trailing space in the line troff:<stdin>:2455: warning: trailing space in the line an.tmac:<stdin>:2507: style: 1 leading space(s) on input line troff:<stdin>:2507: warning: trailing space in the line an.tmac:<stdin>:2512: style: 1 leading space(s) on input line troff:<stdin>:2512: warning: trailing space in the line an.tmac:<stdin>:2547: style: 1 leading space(s) on input line troff:<stdin>:2547: warning: trailing space in the line troff:<stdin>:2669: warning: trailing space in the line troff:<stdin>:2674: warning: trailing space in the line troff:<stdin>:2679: warning: trailing space in the line troff:<stdin>:2689: warning: trailing space in the line troff:<stdin>:2694: warning: trailing space in the line troff:<stdin>:2699: warning: trailing space in the line troff:<stdin>:2746: warning: trailing space in the line troff:<stdin>:2766: warning: trailing space in the line troff:<stdin>:2771: warning: trailing space in the line troff:<stdin>:2776: warning: trailing space in the line troff:<stdin>:2781: warning: trailing space in the line troff:<stdin>:2787: warning: trailing space in the line troff:<stdin>:2792: warning: trailing space in the line troff:<stdin>:2806: warning: trailing space in the line troff:<stdin>:2816: warning: trailing space in the line troff:<stdin>:2826: warning: trailing space in the line troff:<stdin>:2831: warning: trailing space in the line troff:<stdin>:2837: warning: trailing space in the line troff:<stdin>:2911: warning: trailing space in the line troff:<stdin>:2916: warning: trailing space in the line troff:<stdin>:2923: warning: trailing space in the line troff:<stdin>:2930: warning: trailing space in the line troff:<stdin>:2991: warning: [page 32, 8.1i]: cannot break line troff:<stdin>:995: warning: trailing space in the line troff:<stdin>:1014: warning: trailing space in the line troff:<stdin>:1026: warning: trailing space in the line troff:<stdin>:1038: warning: trailing space in the line troff:<stdin>:1050: warning: trailing space in the line troff:<stdin>:1062: warning: trailing space in the line troff:<stdin>:1078: warning: trailing space in the line troff:<stdin>:1100: warning: trailing space in the line troff:<stdin>:1116: warning: trailing space in the line troff:<stdin>:1124: warning: trailing space in the line troff:<stdin>:1227: warning: trailing space in the line troff:<stdin>:1242: warning: trailing space in the line troff:<stdin>:1251: warning: trailing space in the line troff:<stdin>:1260: warning: trailing space in the line troff:<stdin>:1272: warning: trailing space in the line troff:<stdin>:1284: warning: trailing space in the line an.tmac:<stdin>:1307: style: 1 leading space(s) on input line troff:<stdin>:1399: warning: trailing space in the line troff:<stdin>:1591: warning: trailing space in the line troff:<stdin>:1610: warning: trailing space in the line troff:<stdin>:1628: warning: trailing space in the line troff:<stdin>:1672: warning: trailing space in the line troff:<stdin>:1682: warning: trailing space in the line troff:<stdin>:1708: warning [page 21, line 46]: cannot break line troff:<stdin>:1726: warning: trailing space in the line troff:<stdin>:1776: warning: trailing space in the line troff:<stdin>:1906: warning: trailing space in the line troff:<stdin>:1923: warning: trailing space in the line troff:<stdin>:1931: warning: trailing space in the line troff:<stdin>:1952: warning: trailing space in the line troff:<stdin>:1963: warning: trailing space in the line troff:<stdin>:1981: warning: trailing space in the line troff:<stdin>:2013: warning: trailing space in the line troff:<stdin>:2025: warning: trailing space in the line troff:<stdin>:2034: warning: trailing space in the line troff:<stdin>:2046: warning: trailing space in the line troff:<stdin>:2054: warning: trailing space in the line troff:<stdin>:2088: warning: trailing space in the line troff:<stdin>:2102: warning: trailing space in the line troff:<stdin>:2107: warning: trailing space in the line troff:<stdin>:2117: warning: trailing space in the line troff:<stdin>:2127: warning: trailing space in the line troff:<stdin>:2140: warning: trailing space in the line troff:<stdin>:2145: warning: trailing space in the line troff:<stdin>:2150: warning: trailing space in the line troff:<stdin>:2159: warning: trailing space in the line troff:<stdin>:2165: warning: trailing space in the line troff:<stdin>:2171: warning: trailing space in the line troff:<stdin>:2178: warning: trailing space in the line troff:<stdin>:2191: warning: trailing space in the line troff:<stdin>:2196: warning: trailing space in the line troff:<stdin>:2201: warning: trailing space in the line troff:<stdin>:2206: warning: trailing space in the line troff:<stdin>:2211: warning: trailing space in the line troff:<stdin>:2216: warning: trailing space in the line troff:<stdin>:2223: warning: trailing space in the line troff:<stdin>:2229: warning: trailing space in the line troff:<stdin>:2235: warning: trailing space in the line troff:<stdin>:2241: warning: trailing space in the line troff:<stdin>:2255: warning: trailing space in the line troff:<stdin>:2296: warning: trailing space in the line troff:<stdin>:2302: warning: trailing space in the line troff:<stdin>:2307: warning: trailing space in the line troff:<stdin>:2328: warning: trailing space in the line troff:<stdin>:2333: warning: trailing space in the line troff:<stdin>:2339: warning: trailing space in the line troff:<stdin>:2345: warning: trailing space in the line troff:<stdin>:2352: warning: trailing space in the line troff:<stdin>:2357: warning: trailing space in the line troff:<stdin>:2379: warning: trailing space in the line troff:<stdin>:2388: warning: trailing space in the line troff:<stdin>:2443: warning: trailing space in the line troff:<stdin>:2455: warning: trailing space in the line an.tmac:<stdin>:2507: style: 1 leading space(s) on input line troff:<stdin>:2507: warning: trailing space in the line an.tmac:<stdin>:2512: style: 1 leading space(s) on input line troff:<stdin>:2512: warning: trailing space in the line an.tmac:<stdin>:2547: style: 1 leading space(s) on input line troff:<stdin>:2547: warning: trailing space in the line troff:<stdin>:2669: warning: trailing space in the line troff:<stdin>:2674: warning: trailing space in the line troff:<stdin>:2679: warning: trailing space in the line troff:<stdin>:2689: warning: trailing space in the line troff:<stdin>:2694: warning: trailing space in the line troff:<stdin>:2699: warning: trailing space in the line troff:<stdin>:2746: warning: trailing space in the line troff:<stdin>:2766: warning: trailing space in the line troff:<stdin>:2771: warning: trailing space in the line troff:<stdin>:2776: warning: trailing space in the line troff:<stdin>:2781: warning: trailing space in the line troff:<stdin>:2787: warning: trailing space in the line troff:<stdin>:2792: warning: trailing space in the line troff:<stdin>:2806: warning: trailing space in the line troff:<stdin>:2816: warning: trailing space in the line troff:<stdin>:2826: warning: trailing space in the line troff:<stdin>:2831: warning: trailing space in the line troff:<stdin>:2837: warning: trailing space in the line troff:<stdin>:2911: warning: trailing space in the line troff:<stdin>:2916: warning: trailing space in the line troff:<stdin>:2923: warning: trailing space in the line troff:<stdin>:2930: warning: trailing space in the line troff:<stdin>:2981: warning [page 36, line 23]: cannot break line troff:<stdin>:2986: warning [page 36, line 26]: cannot break line troff:<stdin>:2991: warning [page 36, line 29]: cannot break line troff:<stdin>:2996: warning [page 36, line 32]: cannot break line troff:<stdin>:3001: warning [page 36, line 35]: cannot break line -.-. Additionally: Remove hidden trailing space in lines that end with " \fR". -.- Generally: Split (sometimes) lines after a punctuation mark; before a conjunction.
--- valgrind.1 2025-03-30 23:17:09.593397385 +0000 +++ valgrind.1.new 2025-03-30 23:57:53.042671374 +0000 @@ -46,7 +46,7 @@ http://www\&.valgrind\&.org/docs/manual/ .PP The single most important option\&. .PP -\fB\-\-tool=<toolname> [default: memcheck] \fR +\fB\-\-tool=<toolname> [default: memcheck]\fR .RS 4 Run the Valgrind tool called \fItoolname\fR, e\&.g\&. memcheck, cachegrind, callgrind, helgrind, drd, massif, dhat, lackey, none, exp\-bbv, etc\&. @@ -82,7 +82,7 @@ Run silently, and only print error messa Be more verbose\&. Gives extra information on various aspects of your program, such as: the shared objects loaded, the suppressions used, the progress of the instrumentation and execution engines, and warnings about unusual behaviour\&. Repeating the option increases the verbosity level\&. .RE .PP -\fB\-\-trace\-children=<yes|no> [default: no] \fR +\fB\-\-trace\-children=<yes|no> [default: no]\fR .RS 4 When enabled, Valgrind will trace into sub\-processes initiated via the \fIexec\fR @@ -99,7 +99,7 @@ calls immediately call anyway\&. .RE .PP -\fB\-\-trace\-children\-skip=patt1,patt2,\&.\&.\&. \fR +\fB\-\-trace\-children\-skip=patt1,patt2,\&.\&.\&.\fR .RS 4 This option only has an effect when \fB\-\-trace\-children=yes\fR @@ -111,13 +111,13 @@ and This can be useful for pruning uninteresting branches from a tree of processes being run on Valgrind\&. But you should be careful when using it\&. When Valgrind skips tracing into an executable, it doesn\*(Aqt just skip tracing that executable, it also skips tracing any of that executable\*(Aqs child processes\&. In other words, the flag doesn\*(Aqt merely cause tracing to stop at the specified executables \-\- it skips tracing of entire process subtrees rooted at any of the specified executables\&. .RE .PP -\fB\-\-trace\-children\-skip\-by\-arg=patt1,patt2,\&.\&.\&. \fR +\fB\-\-trace\-children\-skip\-by\-arg=patt1,patt2,\&.\&.\&.\fR .RS 4 This is the same as \fB\-\-trace\-children\-skip\fR, with one difference: the decision as to whether to trace into a child process is made by examining the arguments to the child process, rather than the name of its executable\&. .RE .PP -\fB\-\-child\-silent\-after\-fork=<yes|no> [default: no] \fR +\fB\-\-child\-silent\-after\-fork=<yes|no> [default: no]\fR .RS 4 When enabled, Valgrind will not show any debugging or logging output for the child process resulting from a \fIfork\fR @@ -125,7 +125,7 @@ call\&. This can make the output less co \fI\-\-trace\-children=\fR\&. Use of this option is also strongly recommended if you are requesting XML output (\fI\-\-xml=yes\fR), since otherwise the XML from child and parent may become mixed up, which usually makes it useless\&. .RE .PP -\fB\-\-vgdb=<no|yes|full> [default: yes] \fR +\fB\-\-vgdb=<no|yes|full> [default: yes]\fR .RS 4 Valgrind will provide "gdbserver" functionality when \fB\-\-vgdb=yes\fR @@ -143,7 +143,7 @@ command line utility can send "monitor c Valgrind monitor commands\&. A tool can optionally provide tool specific monitor commands, which are documented in the tool specific chapter\&. .RE .PP -\fB\-\-vgdb\-error=<number> [default: 999999999] \fR +\fB\-\-vgdb\-error=<number> [default: 999999999]\fR .RS 4 Use this option when the Valgrind gdbserver is enabled with \fB\-\-vgdb=yes\fR @@ -151,7 +151,7 @@ or \fB\-\-vgdb=full\fR\&. Tools that report errors will wait for "number" errors to be reported before freezing the program and waiting for you to connect with GDB\&. It follows that a value of zero will cause the gdbserver to be started before your program is executed\&. This is typically used to insert GDB breakpoints before execution, and also works with tools that do not report errors, such as Massif\&. .RE .PP -\fB\-\-vgdb\-stop\-at=<set> [default: none] \fR +\fB\-\-vgdb\-stop\-at=<set> [default: none]\fR .RS 4 Use this option when the Valgrind gdbserver is enabled with \fB\-\-vgdb=yes\fR @@ -218,7 +218,7 @@ for the empty set\&. .RE .RE .PP -\fB\-\-track\-fds=<yes|no|all> [default: no] \fR +\fB\-\-track\-fds=<yes|no|all> [default: no]\fR .RS 4 When enabled, Valgrind will print out a list of open file descriptors on exit or on request, via the gdbserver monitor command \fIv\&.info open_fds\fR\&. Along with each file descriptor is printed a stack backtrace of where the file was opened and any details relating to the file descriptor such as the file name or socket details\&. Use @@ -230,17 +230,17 @@ and stderr\&. .RE .PP -\fB\-\-time\-stamp=<yes|no> [default: no] \fR +\fB\-\-time\-stamp=<yes|no> [default: no]\fR .RS 4 When enabled, each message is preceded with an indication of the elapsed wallclock time since startup, expressed as days, hours, minutes, seconds and milliseconds\&. .RE .PP -\fB\-\-log\-fd=<number> [default: 2, stderr] \fR +\fB\-\-log\-fd=<number> [default: 2, stderr]\fR .RS 4 Specifies that Valgrind should send all of its messages to the specified file descriptor\&. The default, 2, is the standard error channel (stderr)\&. Note that this may interfere with the client\*(Aqs own use of stderr, as Valgrind\*(Aqs output will be interleaved with any output that the client sends to stderr\&. .RE .PP -\fB\-\-log\-file=<filename> \fR +\fB\-\-log\-file=<filename>\fR .RS 4 Specifies that Valgrind should send all of its messages to the specified file\&. If the file name is empty, it causes an abort\&. There are three special format specifiers that can be used in the file name\&. .sp @@ -279,7 +279,7 @@ is followed by any other character, it c If the file name specifies a relative file name, it is put in the program\*(Aqs initial working directory: this is the current directory when the program started its execution after the fork or after the exec\&. If it specifies an absolute file name (ie\&. starts with \*(Aq/\*(Aq) then it is put there\&. .RE .PP -\fB\-\-log\-socket=<ip\-address:port\-number> \fR +\fB\-\-log\-socket=<ip\-address:port\-number>\fR .RS 4 Specifies that Valgrind should send all of its messages to the specified port at the specified IP address\&. The port may be omitted, in which case port 1500 is used\&. If a connection cannot be made to the specified socket, Valgrind falls back to writing output to the standard error (stderr)\&. This option is intended to be used in conjunction with the valgrind\-listener @@ -288,7 +288,7 @@ the commentary in the manual\&. .RE .PP -\fB\-\-enable\-debuginfod=<no|yes> [default: yes] \fR +\fB\-\-enable\-debuginfod=<no|yes> [default: yes]\fR .RS 4 When enabled Valgrind will attempt to download missing debuginfo from debuginfod servers if space\-separated server URLs are present in the $DEBUGINFOD_URLS @@ -298,7 +298,7 @@ environment variable\&. This option is s .PP These options are used by all tools that can report errors, e\&.g\&. Memcheck, but not Cachegrind\&. .PP -\fB\-\-xml=<yes|no> [default: no] \fR +\fB\-\-xml=<yes|no> [default: no]\fR .RS 4 When enabled, the important parts of the output (e\&.g\&. tool error messages) will be in XML format rather than plain text\&. Furthermore, the XML output will be sent to a different output channel than the plain text output\&. Therefore, you also must use one of \fB\-\-xml\-fd\fR, @@ -329,13 +329,13 @@ to send the plain text output to a secon to restrict the plain text output to critical error messages created by Valgrind itself\&. For example, failure to read a specified suppressions file counts as a critical error message\&. In this way, for a successful run the text output file will be empty\&. But if it isn\*(Aqt empty, then it will contain important information which the GUI user should be made aware of\&. .RE .PP -\fB\-\-xml\-fd=<number> [default: \-1, disabled] \fR +\fB\-\-xml\-fd=<number> [default: \-1, disabled]\fR .RS 4 Specifies that Valgrind should send its XML output to the specified file descriptor\&. It must be used in conjunction with \fB\-\-xml=yes\fR\&. .RE .PP -\fB\-\-xml\-file=<filename> \fR +\fB\-\-xml\-file=<filename>\fR .RS 4 Specifies that Valgrind should send its XML output to the specified file\&. It must be used in conjunction with \fB\-\-xml=yes\fR\&. Any @@ -348,7 +348,7 @@ sequences appearing in the filename are for details\&. .RE .PP -\fB\-\-xml\-socket=<ip\-address:port\-number> \fR +\fB\-\-xml\-socket=<ip\-address:port\-number>\fR .RS 4 Specifies that Valgrind should send its XML output the specified port at the specified IP address\&. It must be used in conjunction with \fB\-\-xml=yes\fR\&. The form of the argument is the same as that used by @@ -357,28 +357,28 @@ Specifies that Valgrind should send its for further details\&. .RE .PP -\fB\-\-xml\-user\-comment=<string> \fR +\fB\-\-xml\-user\-comment=<string>\fR .RS 4 Embeds an extra user comment string at the start of the XML output\&. Only works when \fB\-\-xml=yes\fR is specified; ignored otherwise\&. .RE .PP -\fB\-\-demangle=<yes|no> [default: yes] \fR +\fB\-\-demangle=<yes|no> [default: yes]\fR .RS 4 Enable/disable automatic demangling (decoding) of C++ names\&. Enabled by default\&. When enabled, Valgrind will attempt to translate encoded C++ names back to something approaching the original\&. The demangler handles symbols mangled by g++ versions 2\&.X, 3\&.X and 4\&.X\&. .sp An important fact about demangling is that function names mentioned in suppressions files should be in their mangled form\&. Valgrind does not demangle function names when searching for applicable suppressions, because to do otherwise would make suppression file contents dependent on the state of Valgrind\*(Aqs demangling machinery, and also slow down suppression matching\&. .RE .PP -\fB\-\-num\-callers=<number> [default: 12] \fR +\fB\-\-num\-callers=<number> [default: 12]\fR .RS 4 Specifies the maximum number of entries shown in stack traces that identify program locations\&. Note that errors are commoned up using only the top four function locations (the place in the current function, and that of its three immediate callers)\&. So this doesn\*(Aqt affect the total number of errors reported\&. .sp The maximum value for this is 500\&. Note that higher settings will make Valgrind run a bit more slowly and take a bit more memory, but can be useful when working with programs with deeply\-nested call chains\&. .RE .PP -\fB\-\-unw\-stack\-scan\-thresh=<number> [default: 0] \fR, \fB\-\-unw\-stack\-scan\-frames=<number> [default: 5] \fR +\fB\-\-unw\-stack\-scan\-thresh=<number> [default: 0] \fR, \fB\-\-unw\-stack\-scan\-frames=<number> [default: 5]\fR .RS 4 Stack\-scanning support is available only on ARM targets\&. .sp @@ -403,17 +403,17 @@ If stack scanning does take place, it wi be created\&. .RE .PP -\fB\-\-error\-limit=<yes|no> [default: yes] \fR +\fB\-\-error\-limit=<yes|no> [default: yes]\fR .RS 4 When enabled, Valgrind stops reporting errors after 10,000,000 in total, or 1,000 different ones, have been seen\&. This is to stop the error tracking machinery from becoming a huge performance overhead in programs with many errors\&. .RE .PP -\fB\-\-error\-exitcode=<number> [default: 0] \fR +\fB\-\-error\-exitcode=<number> [default: 0]\fR .RS 4 Specifies an alternative exit code to return if Valgrind reported any errors in the run\&. When set to the default value (zero), the return value from Valgrind will always be the return value of the process being simulated\&. When set to a nonzero value, that value is returned instead, if Valgrind detects any errors\&. This is useful for using Valgrind as part of an automated test suite, since it makes it easy to detect test cases for which Valgrind has reported errors, just by inspecting return codes\&. When set to a nonzero value and Valgrind detects no error, the return value of Valgrind will be the return value of the program being simulated\&. .RE .PP -\fB\-\-exit\-on\-first\-error=<yes|no> [default: no] \fR +\fB\-\-exit\-on\-first\-error=<yes|no> [default: no]\fR .RS 4 If this option is enabled, Valgrind exits on the first error\&. A nonzero exit value must be defined using \-\-error\-exitcode @@ -450,7 +450,7 @@ is equivalent to \fB\-\-show\-error\-list=yes\fR\&. .RE .PP -\fB\-\-sigill\-diagnostics=<yes|no> [default: yes] \fR +\fB\-\-sigill\-diagnostics=<yes|no> [default: yes]\fR .RS 4 Enable/disable printing of illegal instruction diagnostics\&. Enabled by default, but defaults to disabled when \fB\-\-quiet\fR @@ -459,7 +459,7 @@ is given\&. The default can always be ex When enabled, a warning message will be printed, along with some diagnostics, whenever an instruction is encountered that Valgrind cannot decode or translate, before the program is given a SIGILL signal\&. Often an illegal instruction indicates a bug in the program or missing support for the particular instruction in Valgrind\&. But some programs do deliberately try to execute an instruction that might be missing and trap the SIGILL signal to detect processor features\&. Using this flag makes it possible to avoid the diagnostic output that you would otherwise get in such cases\&. .RE .PP -\fB\-\-keep\-debuginfo=<yes|no> [default: no] \fR +\fB\-\-keep\-debuginfo=<yes|no> [default: no]\fR .RS 4 When enabled, keep ("archive") symbols and all other debuginfo for unloaded code\&. This allows saved stack traces to include file/line info for code that has been dlclose\*(Aqd (or similar)\&. Be careful with this, since it can lead to unbounded memory use for programs which repeatedly load and unload shared objects\&. .sp @@ -467,7 +467,7 @@ Some tools and some functionalities have \fB\-\-keep\-debuginfo=yes\fR, so other tools may have unknown limitations\&. .RE .PP -\fB\-\-show\-below\-main=<yes|no> [default: no] \fR +\fB\-\-show\-below\-main=<yes|no> [default: no]\fR .RS 4 By default, stack traces for errors do not show any functions that appear beneath \fBmain\fR @@ -483,7 +483,7 @@ If this option is enabled, all stack tra \fBmain\fR\-like functions will not be normalised\&. .RE .PP -\fB\-\-fullpath\-after=<string> [default: don\*(Aqt show source paths] \fR +\fB\-\-fullpath\-after=<string> [default: don\*(Aqt show source paths]\fR .RS 4 By default Valgrind only shows the filenames in stack traces, but not full paths to source files\&. When using Valgrind in large projects where the sources reside in multiple different directories, this can be inconvenient\&. \fB\-\-fullpath\-after\fR @@ -519,7 +519,7 @@ multiple times\&. Any appearance of it c \fB\-\-fullpath\-after\fR\-specified strings, in the order specified\&. The first string to match causes the path to be truncated as described above\&. If none match, the full path is shown\&. This facilitates chopping off prefixes when the sources are drawn from a number of unrelated directories\&. .RE .PP -\fB\-\-extra\-debuginfo\-path=<path> [default: undefined and unused] \fR +\fB\-\-extra\-debuginfo\-path=<path> [default: undefined and unused]\fR .RS 4 By default Valgrind searches in several well\-known paths for debug objects, such as /usr/lib/debug/\&. @@ -571,7 +571,7 @@ auxprogs/valgrind\-di\-server\&.c\&. Valgrind can also download debuginfo via debuginfod\&. See the DEBUGINFOD section for more information\&. .RE .PP -\fB\-\-allow\-mismatched\-debuginfo=no|yes [no] \fR +\fB\-\-allow\-mismatched\-debuginfo=no|yes [no]\fR .RS 4 When reading debuginfo from separate debuginfo objects, Valgrind will by default check that the main and debuginfo objects match, using the GNU debuglink mechanism\&. This guarantees that it does not read debuginfo from out of date debuginfo objects, and also ensures that Valgrind can\*(Aqt crash as a result of mismatches\&. .sp @@ -579,12 +579,12 @@ This check can be overridden using \-\-allow\-mismatched\-debuginfo=yes\&. This may be useful when the debuginfo and main objects have not been split in the proper way\&. Be careful when using this, though: it disables all consistency checking, and Valgrind has been observed to crash when the main and debuginfo objects don\*(Aqt match\&. .RE .PP -\fB\-\-suppressions=<filename> [default: $PREFIX/lib/valgrind/default\&.supp] \fR +\fB\-\-suppressions=<filename> [default: $PREFIX/lib/valgrind/default\&.supp]\fR .RS 4 Specifies an extra file from which to read descriptions of errors to suppress\&. You may use up to 100 extra suppression files\&. .RE .PP -\fB\-\-gen\-suppressions=<yes|no|all> [default: no] \fR +\fB\-\-gen\-suppressions=<yes|no|all> [default: no]\fR .RS 4 When set to \fIyes\fR, Valgrind will pause after every error shown and print the line: @@ -624,13 +624,13 @@ Sometimes two different errors are suppr option which prints out all used suppression records\&. .RE .PP -\fB\-\-input\-fd=<number> [default: 0, stdin] \fR +\fB\-\-input\-fd=<number> [default: 0, stdin]\fR .RS 4 When using \fB\-\-gen\-suppressions=yes\fR, Valgrind will stop so as to read keyboard input from you when each error occurs\&. By default it reads from the standard input (stdin), which is problematic for programs which close stdin\&. This option allows you to specify an alternative file descriptor from which to read input\&. .RE .PP -\fB\-\-dsymutil=no|yes [yes] \fR +\fB\-\-dsymutil=no|yes [yes]\fR .RS 4 This option is only relevant when running Valgrind on macOS\&. .sp @@ -680,7 +680,7 @@ dsymutil is quite slow, sometimes excessively so\&. .RE .PP -\fB\-\-max\-stackframe=<number> [default: 2000000] \fR +\fB\-\-max\-stackframe=<number> [default: 2000000]\fR .RS 4 The maximum size of a stack frame\&. If the stack pointer moves by more than this amount then Valgrind will assume that the program is switching to a different stack\&. .sp @@ -691,7 +691,7 @@ You should only consider use of this opt In general, allocating large structures on the stack is a bad idea, because you can easily run out of stack space, especially on systems with limited memory or which expect to support large numbers of threads each with a small stack, and also because the error checking performed by Memcheck is more effective for heap\-allocated data than for stack\-allocated data\&. If you have to use this option, you may wish to consider rewriting your code to allocate on the heap rather than on the stack\&. .RE .PP -\fB\-\-main\-stacksize=<number> [default: use current \*(Aqulimit\*(Aq value] \fR +\fB\-\-main\-stacksize=<number> [default: use current \*(Aqulimit\*(Aq value]\fR .RS 4 Specifies the size of the main thread\*(Aqs stack\&. .sp @@ -726,13 +726,13 @@ As discussed further in the description \fB\-\-max\-stackframe\fR, a requirement for a large stack is a sign of potential portability problems\&. You are best advised to place all large data in heap\-allocated memory\&. .RE .PP -\fB\-\-max\-threads=<number> [default: 500] \fR +\fB\-\-max\-threads=<number> [default: 500]\fR .RS 4 By default, Valgrind can handle to up to 500 threads\&. Occasionally, that number is too small\&. Use this option to provide a different limit\&. E\&.g\&. \-\-max\-threads=3000\&. .RE .PP -\fB\-\-realloc\-zero\-bytes\-frees=yes|no [default: yes for glibc no otherwise] \fR +\fB\-\-realloc\-zero\-bytes\-frees=yes|no [default: yes for glibc no otherwise]\fR .RS 4 The behaviour of realloc() @@ -758,14 +758,14 @@ For tools that use their own version of malloc (e\&.g\&. Memcheck, Massif, Helgrind, DRD), the following options apply\&. .PP -\fB\-\-alignment=<number> [default: 8 or 16, depending on the platform] \fR +\fB\-\-alignment=<number> [default: 8 or 16, depending on the platform]\fR .RS 4 By default Valgrind\*(Aqs \fBmalloc\fR, \fBrealloc\fR, etc, return a block whose starting address is 8\-byte aligned or 16\-byte aligned (the value depends on the platform and matches the platform default)\&. This option allows you to specify a different alignment\&. The supplied value must be greater than or equal to the default, less than or equal to 4096, and must be a power of two\&. .RE .PP -\fB\-\-redzone\-size=<number> [default: depends on the tool] \fR +\fB\-\-redzone\-size=<number> [default: depends on the tool]\fR .RS 4 Valgrind\*(Aqs \fBmalloc, realloc,\fR @@ -774,7 +774,7 @@ etc, add padding blocks before and after Increasing the redzone size makes it possible to detect overruns of larger distances, but increases the amount of memory used by Valgrind\&. Decreasing the redzone size will reduce the memory needed by Valgrind but also reduces the chances of detecting over/underruns, so is not recommended\&. .RE .PP -\fB\-\-xtree\-memory=none|allocs|full [none] \fR +\fB\-\-xtree\-memory=none|allocs|full [none]\fR .RS 4 Tools replacing Valgrind\*(Aqs \fBmalloc, realloc,\fR @@ -803,7 +803,7 @@ or \fB\-\-keep\-stacktraces=alloc\-then\-free\fR, which already records a stack trace for each free operation\&. The memory overhead varies between 5 and 10 words per unique stacktrace in the xtree, plus the memory needed to record the stack trace for the free operations, if needed specifically for the xtree\&. .RE .PP -\fB\-\-xtree\-memory\-file=<filename> [default: xtmemory\&.kcg\&.%p] \fR +\fB\-\-xtree\-memory\-file=<filename> [default: xtmemory\&.kcg\&.%p]\fR .RS 4 Specifies that Valgrind should produce the xtree memory report in the specified file\&. Any \fB%p\fR @@ -827,7 +827,7 @@ for a detailed explanation about executi .PP These options apply to all tools, as they affect certain obscure workings of the Valgrind core\&. Most people won\*(Aqt need to use them\&. .PP -\fB\-\-smc\-check=<none|stack|all|all\-non\-file> [default: all\-non\-file for x86/amd64/s390x, stack for other archs] \fR +\fB\-\-smc\-check=<none|stack|all|all\-non\-file> [default: all\-non\-file for x86/amd64/s390x, stack for other archs]\fR .RS 4 This option controls Valgrind\*(Aqs detection of self\-modifying code\&. If no checking is done, when a program executes some code, then overwrites it with new code, and executes the new code, Valgrind will continue to execute the translations it made for the old code\&. This will likely lead to incorrect behaviour and/or crashes\&. .sp @@ -858,7 +858,7 @@ provides a cheaper but more limited vers takes advantage of this observation, limiting the overhead of checking to code which is likely to be JIT generated\&. .RE .PP -\fB\-\-read\-inline\-info=<yes|no> [default: see below] \fR +\fB\-\-read\-inline\-info=<yes|no> [default: see below]\fR .RS 4 When enabled, Valgrind will read information about inlined function calls from DWARF3 debug info\&. This slows Valgrind startup and makes it use more memory (typically for each inlined piece of code, 6 words and space for the function name), but it results in more descriptive stacktraces\&. Currently, this functionality is enabled by default only for Linux, FreeBSD, Android and Solaris targets and only for the tools Memcheck, Massif, Helgrind and DRD\&. Here is an example of some stacktraces with \fB\-\-read\-inline\-info=no\fR: @@ -869,11 +869,11 @@ When enabled, Valgrind will read informa .nf ==15380== Conditional jump or move depends on uninitialised value(s) ==15380== at 0x80484EA: main (inlinfo\&.c:6) -==15380== +==15380== ==15380== Conditional jump or move depends on uninitialised value(s) ==15380== at 0x8048550: fun_noninline (inlinfo\&.c:6) ==15380== by 0x804850E: main (inlinfo\&.c:34) -==15380== +==15380== ==15380== Conditional jump or move depends on uninitialised value(s) ==15380== at 0x8048520: main (inlinfo\&.c:6) .fi @@ -894,12 +894,12 @@ And here are the same errors with ==15377== by 0x80484EA: fun_b (inlinfo\&.c:20) ==15377== by 0x80484EA: fun_a (inlinfo\&.c:26) ==15377== by 0x80484EA: main (inlinfo\&.c:33) -==15377== +==15377== ==15377== Conditional jump or move depends on uninitialised value(s) ==15377== at 0x8048550: fun_d (inlinfo\&.c:6) ==15377== by 0x8048550: fun_noninline (inlinfo\&.c:41) ==15377== by 0x804850E: main (inlinfo\&.c:34) -==15377== +==15377== ==15377== Conditional jump or move depends on uninitialised value(s) ==15377== at 0x8048520: fun_d (inlinfo\&.c:6) ==15377== by 0x8048520: main (inlinfo\&.c:35) @@ -909,7 +909,7 @@ And here are the same errors with .\} .RE .PP -\fB\-\-read\-var\-info=<yes|no> [default: no] \fR +\fB\-\-read\-var\-info=<yes|no> [default: no]\fR .RS 4 When enabled, Valgrind will read information about variable types and locations from DWARF3 debug info\&. This slows Valgrind startup significantly and makes it use significantly more memory, but for the tools that can take advantage of it (Memcheck, Helgrind, DRD) it can result in more precise error messages\&. For example, here are some standard errors issued by Memcheck: .sp @@ -921,7 +921,7 @@ When enabled, Valgrind will read informa ==15363== at 0x80484A9: croak (varinfo1\&.c:28) ==15363== by 0x8048544: main (varinfo1\&.c:55) ==15363== Address 0x80497f7 is 7 bytes inside data symbol "global_i2" -==15363== +==15363== ==15363== Uninitialised byte(s) found during client check request ==15363== at 0x80484A9: croak (varinfo1\&.c:28) ==15363== by 0x8048550: main (varinfo1\&.c:56) @@ -944,7 +944,7 @@ And here are the same errors with ==15370== by 0x8048544: main (varinfo1\&.c:55) ==15370== Location 0x80497f7 is 0 bytes inside global_i2[7], ==15370== a global variable declared at varinfo1\&.c:41 -==15370== +==15370== ==15370== Uninitialised byte(s) found during client check request ==15370== at 0x80484A9: croak (varinfo1\&.c:28) ==15370== by 0x8048550: main (varinfo1\&.c:56) @@ -956,22 +956,22 @@ And here are the same errors with .\} .RE .PP -\fB\-\-vgdb\-poll=<number> [default: 5000] \fR +\fB\-\-vgdb\-poll=<number> [default: 5000]\fR .RS 4 As part of its main loop, the Valgrind scheduler will poll to check if some activity (such as an external command or some input from a gdb) has to be handled by gdbserver\&. This activity poll will be done after having run the given number of basic blocks (or slightly more than the given number of basic blocks)\&. This poll is quite cheap so the default value is set relatively low\&. You might further decrease this value if vgdb cannot use ptrace system call to interrupt Valgrind if all threads are (most of the time) blocked in a system call\&. .RE .PP -\fB\-\-vgdb\-shadow\-registers=no|yes [default: no] \fR +\fB\-\-vgdb\-shadow\-registers=no|yes [default: no]\fR .RS 4 When activated, gdbserver will expose the Valgrind shadow registers to GDB\&. With this, the value of the Valgrind shadow registers can be examined or changed using GDB\&. Exposing shadow registers only works with GDB version 7\&.1 or later\&. .RE .PP -\fB\-\-vgdb\-prefix=<prefix> [default: /tmp/vgdb\-pipe] \fR +\fB\-\-vgdb\-prefix=<prefix> [default: /tmp/vgdb\-pipe]\fR .RS 4 To communicate with gdb/vgdb, the Valgrind gdbserver creates 3 files (2 named FIFOs and a mmap shared memory file)\&. The prefix option controls the directory and prefix for the creation of these files\&. .RE .PP -\fB\-\-run\-libc\-freeres=<yes|no> [default: yes] \fR +\fB\-\-run\-libc\-freeres=<yes|no> [default: yes]\fR .RS 4 This option is only relevant when running Valgrind on Linux with GNU libc\&. .sp @@ -992,7 +992,7 @@ fixes that, although at the cost of poss libc\&.so\&. .RE .PP -\fB\-\-run\-cxx\-freeres=<yes|no> [default: yes] \fR +\fB\-\-run\-cxx\-freeres=<yes|no> [default: yes]\fR .RS 4 This option is only relevant when running Valgrind on Linux, FreeBSD or Solaris C++ programs using libstdc++\&. .sp @@ -1011,7 +1011,7 @@ exists, although at the cost of possibly libstdc++\&.so\&. .RE .PP -\fB\-\-sim\-hints=hint1,hint2,\&.\&.\&. \fR +\fB\-\-sim\-hints=hint1,hint2,\&.\&.\&.\fR .RS 4 Pass miscellaneous hints to Valgrind which slightly modify the simulated behaviour in nonstandard or dangerous ways, possibly to help the simulation of strange features\&. By default no hints are enabled\&. Use with caution! Currently known hints are: .sp @@ -1023,7 +1023,7 @@ Pass miscellaneous hints to Valgrind whi .sp -1 .IP \(bu 2.3 .\} -\fBlax\-ioctls: \fR +\fBlax\-ioctls:\fR Be very lax about ioctl handling; the only assumption is that the size is correct\&. Doesn\*(Aqt require the full buffer to be initialised when writing\&. Without this, using some device drivers with a large number of strange ioctl commands becomes very tiresome\&. .RE .sp @@ -1035,7 +1035,7 @@ Be very lax about ioctl handling; the on .sp -1 .IP \(bu 2.3 .\} -\fBfuse\-compatible: \fR +\fBfuse\-compatible:\fR Enable special handling for certain system calls that may block in a FUSE file\-system\&. This may be necessary when running Valgrind on a multi\-threaded program that uses one thread to manage a FUSE file\-system and another thread to access that file\-system\&. .RE .sp @@ -1047,7 +1047,7 @@ Enable special handling for certain syst .sp -1 .IP \(bu 2.3 .\} -\fBenable\-outer: \fR +\fBenable\-outer:\fR Enable some special magic needed when the program being run is itself Valgrind\&. .RE .sp @@ -1059,7 +1059,7 @@ Enable some special magic needed when th .sp -1 .IP \(bu 2.3 .\} -\fBno\-inner\-prefix: \fR +\fBno\-inner\-prefix:\fR Disable printing a prefix \fB>\fR in front of each stdout or stderr output line in an inner Valgrind being run by an outer Valgrind\&. This is useful when running Valgrind regression tests in an outer/inner setup\&. Note that the prefix @@ -1075,7 +1075,7 @@ will always be printed in front of the i .sp -1 .IP \(bu 2.3 .\} -\fBno\-nptl\-pthread\-stackcache: \fR +\fBno\-nptl\-pthread\-stackcache:\fR This hint is only relevant when running Valgrind on Linux; it is ignored on FreeBSD, Solaris and macOS\&. .sp The GNU glibc pthread library (\fBlibpthread\&.so\fR), which is used by pthread programs, maintains a cache of pthread stacks\&. When a pthread terminates, the memory used for the pthread stack and some thread local storage related data structure are not always directly released\&. This memory is kept in a cache (up to a certain size), and is re\-used if a new thread is started\&. @@ -1097,7 +1097,7 @@ Note: Valgrind disables the cache using .sp -1 .IP \(bu 2.3 .\} -\fBlax\-doors: \fR +\fBlax\-doors:\fR (Solaris only) Be very lax about door syscall handling over unrecognised door file descriptors\&. Does not require that full buffer is initialised when writing\&. Without this, programs using libdoor(3LIB) functionality with completely proprietary semantics may report large number of false positives\&. .RE .sp @@ -1113,7 +1113,7 @@ Note: Valgrind disables the cache using .RE .RE .PP -\fB\-\-scheduling\-quantum=<number> [default: 100000] \fR +\fB\-\-scheduling\-quantum=<number> [default: 100000]\fR .RS 4 The \fB\-\-scheduling\-quantum\fR @@ -1121,7 +1121,7 @@ option controls the maximum number of ba Scheduling and Multi-Thread Performance\&. .RE .PP -\fB\-\-fair\-sched=<no|yes|try> [default: no] \fR +\fB\-\-fair\-sched=<no|yes|try> [default: no]\fR .RS 4 The \fB\-\-fair\-sched\fR @@ -1224,7 +1224,7 @@ system call on x86\&. This is for runnin .RE .RE .PP -\fB\-\-merge\-recursive\-frames=<number> [default: 0] \fR +\fB\-\-merge\-recursive\-frames=<number> [default: 0]\fR .RS 4 Some recursive algorithms, for example balanced binary tree implementations, create many different stack traces, each containing cycles of calls\&. A cycle is defined as two identical program counter values separated by zero or more other program counter values\&. Valgrind may then use a lot of memory to store all these stack traces\&. This is a poor use of memory considering that such stack traces contain repeated uninteresting recursive calls instead of more interesting information such as the function that has initiated the recursive call\&. .sp @@ -1239,7 +1239,7 @@ The value 0 (the default) causes no recu Note: recursive calls are detected by analysis of program counter values\&. They are not detected by looking at function names\&. .RE .PP -\fB\-\-num\-transtab\-sectors=<number> [default: 6 for Android platforms, 16 for all others] \fR +\fB\-\-num\-transtab\-sectors=<number> [default: 6 for Android platforms, 16 for all others]\fR .RS 4 Valgrind translates and instruments your program\*(Aqs machine code in small fragments (basic blocks)\&. The translations are stored in a translation cache that is divided into a number of sections (sectors)\&. If the cache is full, the sector containing the oldest translations is emptied and reused\&. If these old translations are needed again, Valgrind must re\-translate and re\-instrument the corresponding machine code, which is expensive\&. If the "executed instructions" working set of a program is big, increasing the number of sectors may improve performance by reducing the number of re\-translations needed\&. Sectors are allocated on demand\&. Once allocated, a sector can never be freed, and occupies considerable space, depending on the tool and the value of \fB\-\-avg\-transtab\-entry\-size\fR @@ -1248,7 +1248,7 @@ Valgrind translates and instruments your to obtain precise information about the memory used by a sector and the allocation and recycling of sectors\&. .RE .PP -\fB\-\-avg\-transtab\-entry\-size=<number> [default: 0, meaning use tool provided default] \fR +\fB\-\-avg\-transtab\-entry\-size=<number> [default: 0, meaning use tool provided default]\fR .RS 4 Average size of translated basic block\&. This average size is used to dimension the size of a sector\&. Each tool provides a default value to be used\&. If this default value is too small, the translation sectors will become full too quickly\&. If this default value is too big, a significant part of the translation sector memory will be unused\&. Note that the average size of a basic block translation depends on the tool, and might depend on tool options\&. For example, the memcheck option \fB\-\-track\-origins=yes\fR @@ -1257,7 +1257,7 @@ increases the size of the basic block tr to tune the size of the sectors, either to gain memory or to avoid too many retranslations\&. .RE .PP -\fB\-\-aspace\-minaddr=<address> [default: depends on the platform] \fR +\fB\-\-aspace\-minaddr=<address> [default: depends on the platform]\fR .RS 4 To avoid potential conflicts with some system libraries, Valgrind does not use the address space below \fB\-\-aspace\-minaddr\fR @@ -1269,7 +1269,7 @@ must be page aligned and must be equal o valgrind \-d \-d date 2>&1 | grep \-i minaddr\&. Values lower than 0x10000 (64KB) are known to create problems on some distributions\&. .RE .PP -\fB\-\-valgrind\-stacksize=<number> [default: 1MB] \fR +\fB\-\-valgrind\-stacksize=<number> [default: 1MB]\fR .RS 4 For each thread, Valgrind needs its own \*(Aqprivate\*(Aq stack\&. The default size for these stacks is largely dimensioned, and so should be sufficient in most cases\&. In case the size is too small, Valgrind will segfault\&. Before segfaulting, a warning might be produced by Valgrind when approaching the limit\&. .sp @@ -1281,7 +1281,7 @@ If your application uses many threads an \fB\-\-valgrind\-stacksize\fR\&. .RE .PP -\fB\-\-show\-emwarns=<yes|no> [default: no] \fR +\fB\-\-show\-emwarns=<yes|no> [default: no]\fR .RS 4 When enabled, Valgrind will emit warnings about its CPU emulation in certain cases\&. These are usually not interesting\&. .RE @@ -1304,7 +1304,7 @@ and wildcards\&. For example: \fI":*libc\&.so*:foo?bar"\fR\&. You may use characters other than a colon to separate the two patterns\&. It is only important that the first character and the separator character are the same\&. For example, the above example could also be written \fI"Q*libc\&.so*Qfoo?bar"\fR\&. Multiple -\fI \-\-require\-text\-symbol\fR +\fI\-\-require\-text\-symbol\fR flags are allowed, in which case shared objects that are loaded into the process will be checked against all of them\&. .sp The purpose of this is to support reliable usage of marked\-up libraries\&. For example, suppose we have a version of GCC\*(Aqs @@ -1396,7 +1396,7 @@ synonym)\&. .RE .RE .PP -\fB\-\-progress\-interval=<number> [default: 0, meaning \*(Aqdisabled\*(Aq] \fR +\fB\-\-progress\-interval=<number> [default: 0, meaning \*(Aqdisabled\*(Aq]\fR .RS 4 This is an enhancement to Valgrind\*(Aqs debugging output\&. It is unlikely to be of interest to end users\&. .sp @@ -1501,7 +1501,7 @@ Each line shows: \fI#thr\fR: number of threads in the program .RE .sp -From the progress of these, it is possible to observe: +\&From the progress of these, it is possible to observe: .sp .RS 4 .ie n \{\ @@ -1588,7 +1588,7 @@ There are also some options for debuggin option\&. .SH "MEMCHECK OPTIONS" .PP -\fB\-\-leak\-check=<no|summary|yes|full> [default: summary] \fR +\fB\-\-leak\-check=<no|summary|yes|full> [default: summary]\fR .RS 4 When enabled, search for memory leaks when the client program finishes\&. If set to \fIsummary\fR, it says how many leaks occurred\&. If set to @@ -1607,7 +1607,7 @@ is given, memcheck will automatically us to reduce the size of the xml output if you are not interested in the leak results\&. .RE .PP -\fB\-\-leak\-resolution=<low|med|high> [default: high] \fR +\fB\-\-leak\-resolution=<low|med|high> [default: high]\fR .RS 4 When doing leak checking, determines how willing Memcheck is to consider different backtraces to be the same for the purposes of merging multiple leaks into a single leak report\&. When set to \fIlow\fR, only the first two entries need match\&. When @@ -1625,7 +1625,7 @@ Note that the setting does not affect Memcheck\*(Aqs ability to find leaks\&. It only changes how the results are presented\&. .RE .PP -\fB\-\-show\-leak\-kinds=<set> [default: definite,possible] \fR +\fB\-\-show\-leak\-kinds=<set> [default: definite,possible]\fR .RS 4 Specifies the leak kinds to show in a \fIfull\fR @@ -1669,7 +1669,7 @@ for the empty set\&. .RE .RE .PP -\fB\-\-errors\-for\-leak\-kinds=<set> [default: definite,possible] \fR +\fB\-\-errors\-for\-leak\-kinds=<set> [default: definite,possible]\fR .RS 4 Specifies the leak kinds to count as errors in a \fIfull\fR @@ -1679,7 +1679,7 @@ is specified similarly to \fB\-\-show\-leak\-kinds\fR .RE .PP -\fB\-\-leak\-check\-heuristics=<set> [default: all] \fR +\fB\-\-leak\-check\-heuristics=<set> [default: all]\fR .RS 4 Specifies the set of leak check heuristics to be used during leak searches\&. The heuristics control which interior pointers to a block cause it to be considered as reachable\&. The heuristic set is specified in one of the following ways: .sp @@ -1705,7 +1705,7 @@ a comma separated list of one or more of .\} \fBall\fR to activate the complete set of heuristics\&. It is equivalent to -\fB\-\-leak\-check\-heuristics=stdstring,length64,newarray,multipleinheritance\fR\&. +\fB\-\-leak\-check\-heuristics=stdstring,\:length64,\:newarray,\:multipleinheritance\fR\&. .RE .sp .RS 4 @@ -1723,7 +1723,7 @@ for the empty set\&. Note that these heuristics are dependent on the layout of the objects produced by the C++ compiler\&. They have been tested with some gcc versions (e\&.g\&. 4\&.4 and 4\&.7)\&. They might not work properly with other C++ compilers\&. .RE .PP -\fB\-\-show\-reachable=<yes|no> \fR, \fB\-\-show\-possibly\-lost=<yes|no> \fR +\fB\-\-show\-reachable=<yes|no> \fR, \fB\-\-show\-possibly\-lost=<yes|no>\fR .RS 4 These options provide an alternative way to specify the leak kinds to show: .sp @@ -1773,7 +1773,7 @@ has no effect if is specified\&. .RE .PP -\fB\-\-xtree\-leak=<no|yes> [no] \fR +\fB\-\-xtree\-leak=<no|yes> [no]\fR .RS 4 If set to yes, the results for the leak search done at exit will be output in a \*(AqCallgrind Format\*(Aq execution tree file\&. Note that this automatically sets the options \fB\-\-leak\-check=full\fR @@ -1903,7 +1903,7 @@ Execution Trees for a detailed explanation about execution trees\&. .RE .PP -\fB\-\-xtree\-leak\-file=<filename> [default: xtleak\&.kcg\&.%p] \fR +\fB\-\-xtree\-leak\-file=<filename> [default: xtleak\&.kcg\&.%p]\fR .RS 4 Specifies that Valgrind should produce the xtree leak report in the specified file\&. Any \fB%p\fR, @@ -1920,7 +1920,7 @@ Execution Trees for a detailed explanation about execution trees formats\&. .RE .PP -\fB\-\-undef\-value\-errors=<yes|no> [default: yes] \fR +\fB\-\-undef\-value\-errors=<yes|no> [default: yes]\fR .RS 4 Controls whether Memcheck reports uses of undefined value errors\&. Set this to \fIno\fR @@ -1928,7 +1928,7 @@ if you don\*(Aqt want to see undefined v \fB\-\-undef\-value\-errors=no\fR\&. .RE .PP -\fB\-\-track\-origins=<yes|no> [default: no] \fR +\fB\-\-track\-origins=<yes|no> [default: no]\fR .RS 4 Controls whether Memcheck tracks the origin of uninitialised values\&. By default, it does not, which means that although it can tell you that an uninitialised value is being used in a dangerous way, it cannot tell you where the uninitialised value came from\&. This often makes it difficult to track down the root problem\&. .sp @@ -1949,7 +1949,7 @@ and is nonsensical\&. Memcheck checks for and rejects this combination at startup\&. .RE .PP -\fB\-\-partial\-loads\-ok=<yes|no> [default: yes] \fR +\fB\-\-partial\-loads\-ok=<yes|no> [default: yes]\fR .RS 4 Controls how Memcheck handles 32\-, 64\-, 128\- and 256\-bit naturally aligned loads from addresses for which some bytes are addressable and others are not\&. When \fIyes\fR, such loads do not produce an address error\&. Instead, loaded bytes originating from illegal addresses are marked as uninitialised, and those corresponding to legal addresses are handled in the normal way\&. @@ -1960,7 +1960,7 @@ When Note that code that behaves in this way is in violation of the ISO C/C++ standards, and should be considered broken\&. If at all possible, such code should be fixed\&. .RE .PP -\fB\-\-expensive\-definedness\-checks=<no|auto|yes> [default: auto] \fR +\fB\-\-expensive\-definedness\-checks=<no|auto|yes> [default: auto]\fR .RS 4 Controls whether Memcheck should employ more precise but also more expensive (time consuming) instrumentation when checking the definedness of certain values\&. In particular, this affects the instrumentation of integer adds, subtracts and equality comparisons\&. .sp @@ -1978,7 +1978,7 @@ The default setting, \fB\-\-expensive\-definedness\-checks=no\fR, although this is strongly workload dependent\&. Note that the exact instrumentation settings in this mode are architecture dependent\&. .RE .PP -\fB\-\-keep\-stacktraces=alloc|free|alloc\-and\-free|alloc\-then\-free|none [default: alloc\-and\-free] \fR +\fB\-\-keep\-stacktraces=alloc|free|alloc\-and\-free|alloc\-then\-free|none [default: alloc\-and\-free]\fR .RS 4 Controls which stack trace(s) to keep for malloc\*(Aqd and/or free\*(Aqd blocks\&. .sp @@ -2010,7 +2010,7 @@ or \fI\-\-keep\-stacktraces=none\fR\&. .RE .PP -\fB\-\-freelist\-vol=<number> [default: 20000000] \fR +\fB\-\-freelist\-vol=<number> [default: 20000000]\fR .RS 4 When the client program releases memory using \fBfree\fR @@ -2022,7 +2022,7 @@ delete This option specifies the maximum total size, in bytes, of the blocks in the queue\&. The default value is twenty million bytes\&. Increasing this increases the total amount of memory used by Memcheck but may detect invalid uses of freed blocks which would otherwise go undetected\&. .RE .PP -\fB\-\-freelist\-big\-blocks=<number> [default: 1000000] \fR +\fB\-\-freelist\-big\-blocks=<number> [default: 1000000]\fR .RS 4 When making blocks from the queue of freed blocks available for re\-allocation, Memcheck will in priority re\-circulate the blocks with a size greater or equal to \fB\-\-freelist\-big\-blocks\fR\&. This ensures that freeing big blocks (in particular freeing blocks bigger than @@ -2031,7 +2031,7 @@ When making blocks from the queue of fre Setting a value of 0 means that all the blocks are re\-circulated in a FIFO order\&. .RE .PP -\fB\-\-workaround\-gcc296\-bugs=<yes|no> [default: no] \fR +\fB\-\-workaround\-gcc296\-bugs=<yes|no> [default: no]\fR .RS 4 When enabled, assume that reads and writes some small distance below the stack pointer are due to bugs in GCC 2\&.96, and does not report them\&. The "small distance" is 256 bytes by default\&. Note that GCC 2\&.96 is the default compiler on some ancient Linux distributions (RedHat 7\&.X) and so you may need to use this option\&. Do not use it if you do not have to, as it can cause real errors to be overlooked\&. A better alternative is to use a more recent GCC in which this bug is fixed\&. .sp @@ -2043,7 +2043,7 @@ to specify the exact range of offsets be \fB\-\-ignore\-range\-below\-sp=1024\-1\fR\&. .RE .PP -\fB\-\-ignore\-range\-below\-sp=<number>\-<number> \fR +\fB\-\-ignore\-range\-below\-sp=<number>\-<number>\fR .RS 4 This is a more general replacement for the deprecated \fB\-\-workaround\-gcc296\-bugs\fR @@ -2051,7 +2051,7 @@ option\&. When specified, it causes Memc \fB\-\-ignore\-range\-below\-sp=8192\-8189\fR\&. Only one range may be specified\&. .RE .PP -\fB\-\-show\-mismatched\-frees=<yes|no> [default: yes] \fR +\fB\-\-show\-mismatched\-frees=<yes|no> [default: yes]\fR .RS 4 When enabled, Memcheck checks that heap blocks are deallocated using a function that matches the allocating function\&. That is, it expects \fIfree\fR @@ -2085,7 +2085,7 @@ This causes a lot of confusing and irrel disables these checks\&. It is not generally advisable to disable them, though, because you may miss real errors as a result\&. .RE .PP -\fB\-\-show\-realloc\-size\-zero=<yes|no> [default: yes] \fR +\fB\-\-show\-realloc\-size\-zero=<yes|no> [default: yes]\fR .RS 4 When enabled, Memcheck checks for uses of \fIrealloc\fR @@ -2099,12 +2099,12 @@ followed by a call to with a size of zero\&. .RE .PP -\fB\-\-ignore\-ranges=0xPP\-0xQQ[,0xRR\-0xSS] \fR +\fB\-\-ignore\-ranges=0xPP\-0xQQ[,0xRR\-0xSS]\fR .RS 4 Any ranges listed in this option (and multiple ranges can be specified, separated by commas) will be ignored by Memcheck\*(Aqs addressability checking\&. .RE .PP -\fB\-\-malloc\-fill=<hexnumber> \fR +\fB\-\-malloc\-fill=<hexnumber>\fR .RS 4 Fills blocks allocated by malloc, @@ -2114,7 +2114,7 @@ calloc, with the specified byte\&. This does not affect a block of memory when it is used as argument to client requests VALGRIND_MEMPOOL_ALLOC or VALGRIND_MALLOCLIKE_BLOCK\&. .RE .PP -\fB\-\-free\-fill=<hexnumber> \fR +\fB\-\-free\-fill=<hexnumber>\fR .RS 4 Fills blocks freed by free, @@ -2124,7 +2124,7 @@ does not affect a block of memory when i .RE .SH "CACHEGRIND OPTIONS" .PP -\fB\-\-cachegrind\-out\-file=<file> \fR +\fB\-\-cachegrind\-out\-file=<file>\fR .RS 4 Write the Cachegrind output file to file @@ -2137,17 +2137,17 @@ format specifiers can be used to embed t \fB\-\-log\-file\fR\&. .RE .PP -\fB\-\-cache\-sim=no|yes [no] \fR +\fB\-\-cache\-sim=no|yes [no]\fR .RS 4 Enables or disables collection of cache access and miss counts\&. .RE .PP -\fB\-\-branch\-sim=no|yes [no] \fR +\fB\-\-branch\-sim=no|yes [no]\fR .RS 4 Enables or disables collection of branch instruction and misprediction counts\&. .RE .PP -\fB\-\-instr\-at\-start=no|yes [yes] \fR +\fB\-\-instr\-at\-start=no|yes [yes]\fR .RS 4 Enables or disables instrumentation at the start of execution\&. Use this in combination with CACHEGRIND_START_INSTRUMENTATION @@ -2156,26 +2156,26 @@ CACHEGRIND_STOP_INSTRUMENTATION to measure only part of a client program\*(Aqs execution\&. .RE .PP -\fB\-\-I1=<size>,<associativity>,<line size> \fR +\fB\-\-I1=<size>,<associativity>,<line size>\fR .RS 4 Specify the size, associativity and line size of the level 1 instruction cache\&. Only useful with \fB\-\-cache\-sim=yes\fR\&. .RE .PP -\fB\-\-D1=<size>,<associativity>,<line size> \fR +\fB\-\-D1=<size>,<associativity>,<line size>\fR .RS 4 Specify the size, associativity and line size of the level 1 data cache\&. Only useful with \fB\-\-cache\-sim=yes\fR\&. .RE .PP -\fB\-\-LL=<size>,<associativity>,<line size> \fR +\fB\-\-LL=<size>,<associativity>,<line size>\fR .RS 4 Specify the size, associativity and line size of the last\-level cache\&. Only useful with \fB\-\-cache\-sim=yes\fR\&. .RE .SH "CALLGRIND OPTIONS" .PP -\fB\-\-callgrind\-out\-file=<file> \fR +\fB\-\-callgrind\-out\-file=<file>\fR .RS 4 Write the profile data to file @@ -2188,57 +2188,57 @@ format specifiers can be used to embed t \fB\-\-log\-file\fR\&. When multiple dumps are made, the file name is modified further; see below\&. .RE .PP -\fB\-\-dump\-line=<no|yes> [default: yes] \fR +\fB\-\-dump\-line=<no|yes> [default: yes]\fR .RS 4 This specifies that event counting should be performed at source line granularity\&. This allows source annotation for sources which are compiled with debug information (\fB\-g\fR)\&. .RE .PP -\fB\-\-dump\-instr=<no|yes> [default: no] \fR +\fB\-\-dump\-instr=<no|yes> [default: no]\fR .RS 4 This specifies that event counting should be performed at per\-instruction granularity\&. This allows for assembly code annotation\&. Currently the results can only be displayed by KCachegrind\&. .RE .PP -\fB\-\-compress\-strings=<no|yes> [default: yes] \fR +\fB\-\-compress\-strings=<no|yes> [default: yes]\fR .RS 4 This option influences the output format of the profile data\&. It specifies whether strings (file and function names) should be identified by numbers\&. This shrinks the file, but makes it more difficult for humans to read (which is not recommended in any case)\&. .RE .PP -\fB\-\-compress\-pos=<no|yes> [default: yes] \fR +\fB\-\-compress\-pos=<no|yes> [default: yes]\fR .RS 4 This option influences the output format of the profile data\&. It specifies whether numerical positions are always specified as absolute values or are allowed to be relative to previous numbers\&. This shrinks the file size\&. .RE .PP -\fB\-\-combine\-dumps=<no|yes> [default: no] \fR +\fB\-\-combine\-dumps=<no|yes> [default: no]\fR .RS 4 When enabled, when multiple profile data parts are to be generated these parts are appended to the same output file\&. Not recommended\&. .RE .PP -\fB\-\-dump\-every\-bb=<count> [default: 0, never] \fR +\fB\-\-dump\-every\-bb=<count> [default: 0, never]\fR .RS 4 Dump profile data every \fBcount\fR basic blocks\&. Whether a dump is needed is only checked when Valgrind\*(Aqs internal scheduler is run\&. Therefore, the minimum setting useful is about 100000\&. The count is a 64\-bit value to make long dump periods possible\&. .RE .PP -\fB\-\-dump\-before=<function> \fR +\fB\-\-dump\-before=<function>\fR .RS 4 Dump when entering \fBfunction\fR\&. .RE .PP -\fB\-\-zero\-before=<function> \fR +\fB\-\-zero\-before=<function>\fR .RS 4 Zero all costs when entering \fBfunction\fR\&. .RE .PP -\fB\-\-dump\-after=<function> \fR +\fB\-\-dump\-after=<function>\fR .RS 4 Dump when leaving \fBfunction\fR\&. .RE .PP -\fB\-\-instr\-atstart=<yes|no> [default: yes] \fR +\fB\-\-instr\-atstart=<yes|no> [default: yes]\fR .RS 4 Specify if you want Callgrind to start simulation and profiling from the beginning of the program\&. When set to no, Callgrind will not be able to collect any information, including calls, but it will have at most a slowdown of around 4, which is the minimum Valgrind overhead\&. Instrumentation can be interactively enabled via @@ -2252,7 +2252,7 @@ for the macro you have to use in your so For cache simulation, results will be less accurate when switching on instrumentation later in the program run, as the simulator starts with an empty cache at that moment\&. Switch on event collection later to cope with this error\&. .RE .PP -\fB\-\-collect\-atstart=<yes|no> [default: yes] \fR +\fB\-\-collect\-atstart=<yes|no> [default: yes]\fR .RS 4 Specify whether event collection is enabled at beginning of the profile run\&. .sp @@ -2293,18 +2293,18 @@ CALLGRIND_TOGGLE_COLLECT ; at the needed code positions\&. .RE .PP -\fB\-\-toggle\-collect=<function> \fR +\fB\-\-toggle\-collect=<function>\fR .RS 4 Toggle collection on entry/exit of \fBfunction\fR\&. .RE .PP -\fB\-\-collect\-jumps=<no|yes> [default: no] \fR +\fB\-\-collect\-jumps=<no|yes> [default: no]\fR .RS 4 This specifies whether information for (conditional) jumps should be collected\&. As above, callgrind_annotate currently is not able to show you the data\&. You have to use KCachegrind to get jump arrows in the annotated code\&. .RE .PP -\fB\-\-collect\-systime=<no|yes|msec|usec|nsec> [default: no] \fR +\fB\-\-collect\-systime=<no|yes|msec|usec|nsec> [default: no]\fR .RS 4 This specifies whether information for system call times should be collected\&. .sp @@ -2325,36 +2325,36 @@ nsec is not supported on Darwin\&. .RE .PP -\fB\-\-collect\-bus=<no|yes> [default: no] \fR +\fB\-\-collect\-bus=<no|yes> [default: no]\fR .RS 4 This specifies whether the number of global bus events executed should be collected\&. The event type "Ge" is used for these events\&. .RE .PP -\fB\-\-cache\-sim=<yes|no> [default: no] \fR +\fB\-\-cache\-sim=<yes|no> [default: no]\fR .RS 4 Specify if you want to do full cache simulation\&. By default, only instruction read accesses will be counted ("Ir")\&. With cache simulation, further event counters are enabled: Cache misses on instruction reads ("I1mr"/"ILmr"), data read accesses ("Dr") and related cache misses ("D1mr"/"DLmr"), data write accesses ("Dw") and related cache misses ("D1mw"/"DLmw")\&. For more information, see Cachegrind: a cache and branch-prediction profiler\&. .RE .PP -\fB\-\-branch\-sim=<yes|no> [default: no] \fR +\fB\-\-branch\-sim=<yes|no> [default: no]\fR .RS 4 Specify if you want to do branch prediction simulation\&. Further event counters are enabled: Number of executed conditional branches and related predictor misses ("Bc"/"Bcm"), executed indirect jumps and related misses of the jump address predictor ("Bi"/"Bim")\&. .RE .SH "HELGRIND OPTIONS" .PP -\fB\-\-free\-is\-write=no|yes [default: no] \fR +\fB\-\-free\-is\-write=no|yes [default: no]\fR .RS 4 When enabled (not the default), Helgrind treats freeing of heap memory as if the memory was written immediately before the free\&. This exposes races where memory is referenced by one thread, and freed by another, but there is no observable synchronisation event to ensure that the reference happens before the free\&. .sp This functionality is new in Valgrind 3\&.7\&.0, and is regarded as experimental\&. It is not enabled by default because its interaction with custom memory allocators is not well understood at present\&. User feedback is welcomed\&. .RE .PP -\fB\-\-track\-lockorders=no|yes [default: yes] \fR +\fB\-\-track\-lockorders=no|yes [default: yes]\fR .RS 4 When enabled (the default), Helgrind performs lock order consistency checking\&. For some buggy programs, the large number of lock order errors reported can become annoying, particularly if you\*(Aqre only interested in race errors\&. You may therefore find it helpful to disable lock order checking\&. .RE .PP -\fB\-\-history\-level=none|approx|full [default: full] \fR +\fB\-\-history\-level=none|approx|full [default: full]\fR .RS 4 \fB\-\-history\-level=full\fR (the default) causes Helgrind collects enough information about "old" accesses that it can produce two stack traces in a race report \-\- both the stack trace for the current access, and the trace for the older, conflicting access\&. To limit memory usage, "old" accesses stack traces are limited to a maximum of @@ -2376,7 +2376,7 @@ does), but it is better than nothing, an \fB\-\-history\-level=none\fR\&. .RE .PP -\fB\-\-history\-backtrace\-size=<number> [default: 8] \fR +\fB\-\-history\-backtrace\-size=<number> [default: 8]\fR .RS 4 When \fI\-\-history\-level=full\fR @@ -2385,7 +2385,7 @@ is selected, indicates how many entries to record in "old" accesses stack traces\&. .RE .PP -\fB\-\-delta\-stacktrace=no|yes [default: yes on linux amd64/x86] \fR +\fB\-\-delta\-stacktrace=no|yes [default: yes on linux amd64/x86]\fR .RS 4 This flag only has any effect at \fB\-\-history\-level=full\fR\&. @@ -2440,7 +2440,7 @@ Determining which instructions are chang .sp .RE .PP -\fB\-\-conflict\-cache\-size=N [default: 1000000] \fR +\fB\-\-conflict\-cache\-size=N [default: 1000000]\fR .RS 4 This flag only has any effect at \fB\-\-history\-level=full\fR\&. @@ -2452,7 +2452,7 @@ This option controls the size of the cac The minimum value is 10,000 and the maximum is 30,000,000 (thirty times the default value)\&. Increasing the value by 1 increases Helgrind\*(Aqs memory requirement by very roughly 100 bytes, so the maximum value will easily eat up three extra gigabytes or so of memory\&. .RE .PP -\fB\-\-check\-stack\-refs=no|yes [default: yes] \fR +\fB\-\-check\-stack\-refs=no|yes [default: yes]\fR .RS 4 By default Helgrind checks all data memory accesses made by your program\&. This flag enables you to skip checking for accesses to thread stacks (local variables)\&. This can improve performance, but comes at the cost of missing races on stack\-allocated data\&. .RE @@ -2504,12 +2504,12 @@ Print an error message if any mutex or w Data races that occur between a statement at the end of one thread and another thread can be missed if memory access information is discarded immediately after a thread has been joined\&. This option allows one to specify for how many joined threads memory access information should be retained\&. .RE .PP -\fB \-\-first\-race\-only=<yes|no> [default: no] \fR +\fB\& \-\-first\-race\-only=<yes|no> [default: no]\fR .RS 4 Whether to report only the first data race that has been detected on a memory location or all data races that have been detected on a memory location\&. .RE .PP -\fB \-\-free\-is\-write=<yes|no> [default: no] \fR +\fB\& \-\-free\-is\-write=<yes|no> [default: no]\fR .RS 4 Whether to report races between accessing memory and freeing memory\&. Enabling this option may cause DRD to run slightly slower\&. Notes: .sp @@ -2544,7 +2544,7 @@ valgrind \-\-tool=drd \-\-free\-is\-writ .RE .RE .PP -\fB \-\-report\-signal\-unlocked=<yes|no> [default: yes] \fR +\fB\& \-\-report\-signal\-unlocked=<yes|no> [default: yes]\fR .RS 4 Whether to report calls to \fBpthread_cond_signal\fR @@ -2666,17 +2666,17 @@ Trace all semaphore activity\&. .RE .SH "MASSIF OPTIONS" .PP -\fB\-\-heap=<yes|no> [default: yes] \fR +\fB\-\-heap=<yes|no> [default: yes]\fR .RS 4 Specifies whether heap profiling should be done\&. .RE .PP -\fB\-\-heap\-admin=<size> [default: 8] \fR +\fB\-\-heap\-admin=<size> [default: 8]\fR .RS 4 If heap profiling is enabled, gives the number of administrative bytes per block to use\&. This should be an estimate of the average, since it may vary\&. For example, the allocator used by glibc on Linux requires somewhere between 4 to 15 bytes per block, depending on various factors\&. That allocator also requires admin space for freed blocks, but Massif cannot account for this\&. .RE .PP -\fB\-\-stacks=<yes|no> [default: no] \fR +\fB\-\-stacks=<yes|no> [default: no]\fR .RS 4 Specifies whether stack profiling should be done\&. This option slows Massif down greatly, and so is off by default\&. Note that Massif assumes that the main stack has size zero at start\-up\&. This is not true, but doing otherwise accurately is difficult\&. Furthermore, starting at zero better indicates the size of the part of the main stack that a user program actually has control over\&. .sp @@ -2686,17 +2686,17 @@ verbosity arguments, then massif produce \fB\-px\-default=unwindregs\-at\-mem\-access \-\-px\-file\-backed=unwindregs\-at\-mem\-access\fR\&. .RE .PP -\fB\-\-pages\-as\-heap=<yes|no> [default: no] \fR +\fB\-\-pages\-as\-heap=<yes|no> [default: no]\fR .RS 4 Tells Massif to profile memory at the page level rather than at the malloc\*(Aqd block level\&. See above for details\&. .RE .PP -\fB\-\-depth=<number> [default: 30] \fR +\fB\-\-depth=<number> [default: 30]\fR .RS 4 Maximum depth of the allocation trees recorded for detailed snapshots\&. Increasing it will make Massif run somewhat more slowly, use more memory, and produce bigger output files\&. .RE .PP -\fB\-\-alloc\-fn=<name> \fR +\fB\-\-alloc\-fn=<name>\fR .RS 4 Functions specified with this option will be treated as though they were a heap allocation function such as \fBmalloc\fR\&. This is useful for functions that are wrappers to @@ -2743,7 +2743,7 @@ will work with inline functions\&. Inlin does not support wildcards\&. .RE .PP -\fB\-\-ignore\-fn=<name> \fR +\fB\-\-ignore\-fn=<name>\fR .RS 4 Any direct heap allocation (i\&.e\&. a call to \fBmalloc\fR, @@ -2763,33 +2763,33 @@ The rules for writing C++ function names above\&. .RE .PP -\fB\-\-threshold=<m\&.n> [default: 1\&.0] \fR +\fB\-\-threshold=<m\&.n> [default: 1\&.0]\fR .RS 4 The significance threshold for heap allocations, as a percentage of total memory size\&. Allocation tree entries that account for less than this will be aggregated\&. Note that this should be specified in tandem with ms_print\*(Aqs option of the same name\&. .RE .PP -\fB\-\-peak\-inaccuracy=<m\&.n> [default: 1\&.0] \fR +\fB\-\-peak\-inaccuracy=<m\&.n> [default: 1\&.0]\fR .RS 4 Massif does not necessarily record the actual global memory allocation peak; by default it records a peak only when the global memory allocation size exceeds the previous peak by at least 1\&.0%\&. This is because there can be many local allocation peaks along the way, and doing a detailed snapshot for every one would be expensive and wasteful, as all but one of them will be later discarded\&. This inaccuracy can be changed (even to 0\&.0%) via this option, but Massif will run drastically slower as the number approaches zero\&. .RE .PP -\fB\-\-time\-unit=<i|ms|B> [default: i] \fR +\fB\-\-time\-unit=<i|ms|B> [default: i]\fR .RS 4 The time unit used for the profiling\&. There are three possibilities: instructions executed (i), which is good for most cases; real (wallclock) time (ms, i\&.e\&. milliseconds), which is sometimes useful; and bytes allocated/deallocated on the heap and/or stack (B), which is useful for very short\-run programs, and for testing purposes, because it is the most reproducible across different machines\&. .RE .PP -\fB\-\-detailed\-freq=<n> [default: 10] \fR +\fB\-\-detailed\-freq=<n> [default: 10]\fR .RS 4 Frequency of detailed snapshots\&. With \fB\-\-detailed\-freq=1\fR, every snapshot is detailed\&. .RE .PP -\fB\-\-max\-snapshots=<n> [default: 100] \fR +\fB\-\-max\-snapshots=<n> [default: 100]\fR .RS 4 The maximum number of snapshots recorded\&. If set to N, for all programs except very short\-running ones, the final number of snapshots will be between N/2 and N\&. .RE .PP -\fB\-\-massif\-out\-file=<file> [default: massif\&.out\&.%p] \fR +\fB\-\-massif\-out\-file=<file> [default: massif\&.out\&.%p]\fR .RS 4 Write the profile data to file @@ -2803,7 +2803,7 @@ format specifiers can be used to embed t .RE .SH "BBV OPTIONS" .PP -\fB\-\-bb\-out\-file=<name> [default: bb\&.out\&.%p] \fR +\fB\-\-bb\-out\-file=<name> [default: bb\&.out\&.%p]\fR .RS 4 This option selects the name of the basic block vector file\&. The \fB%p\fR @@ -2813,7 +2813,7 @@ format specifiers can be used to embed t \fB\-\-log\-file\fR\&. .RE .PP -\fB\-\-pc\-out\-file=<name> [default: pc\&.out\&.%p] \fR +\fB\-\-pc\-out\-file=<name> [default: pc\&.out\&.%p]\fR .RS 4 This option selects the name of the PC file\&. This file holds program counter addresses and function name info for the various basic blocks\&. This can be used in conjunction with the basic block vector file to fast\-forward via function names instead of just instruction counts\&. The \fB%p\fR @@ -2823,18 +2823,18 @@ format specifiers can be used to embed t \fB\-\-log\-file\fR\&. .RE .PP -\fB\-\-interval\-size=<number> [default: 100000000] \fR +\fB\-\-interval\-size=<number> [default: 100000000]\fR .RS 4 This option selects the size of the interval to use\&. The default is 100 million instructions, which is a commonly used value\&. Other sizes can be used; smaller intervals can help programs with finer\-grained phases\&. However smaller interval size can lead to accuracy issues due to warm\-up effects (When fast\-forwarding the various architectural features will be un\-initialized, and it will take some number of instructions before they "warm up" to the state a full simulation would be at without the fast\-forwarding\&. Large interval sizes tend to mitigate this\&.) .RE .PP -\fB\-\-instr\-count\-only [default: no] \fR +\fB\-\-instr\-count\-only [default: no]\fR .RS 4 This option tells the tool to only display instruction count totals, and to not generate the actual basic block vector file\&. This is useful for debugging, and for gathering instruction count info without generating the large basic block vector files\&. .RE .SH "LACKEY OPTIONS" .PP -\fB\-\-basic\-counts=<no|yes> [default: yes] \fR +\fB\-\-basic\-counts=<no|yes> [default: yes]\fR .RS 4 When enabled, Lackey prints the following statistics and information about the execution of the client program: .sp @@ -2908,26 +2908,26 @@ The exit code of the client program\&. .RE .RE .PP -\fB\-\-detailed\-counts=<no|yes> [default: no] \fR +\fB\-\-detailed\-counts=<no|yes> [default: no]\fR .RS 4 When enabled, Lackey prints a table containing counts of loads, stores and ALU operations, differentiated by their IR types\&. The IR types are identified by their IR name ("I1", "I8", \&.\&.\&. "I128", "F32", "F64", and "V128")\&. .RE .PP -\fB\-\-trace\-mem=<no|yes> [default: no] \fR +\fB\-\-trace\-mem=<no|yes> [default: no]\fR .RS 4 When enabled, Lackey prints the size and address of almost every memory access made by the program\&. See the comments at the top of the file lackey/lk_main\&.c for details about the output format, how it works, and inaccuracies in the address trace\&. Note that this option produces immense amounts of output\&. .RE .PP -\fB\-\-trace\-superblocks=<no|yes> [default: no] \fR +\fB\-\-trace\-superblocks=<no|yes> [default: no]\fR .RS 4 When enabled, Lackey prints out the address of every superblock (a single entry, multiple exit, linear chunk of code) executed by the program\&. This is primarily of interest to Valgrind developers\&. See the comments at the top of the file lackey/lk_main\&.c for details about the output format\&. Note that this option produces large amounts of output\&. .RE .PP -\fB\-\-fnname=<name> [default: main] \fR +\fB\-\-fnname=<name> [default: main]\fR .RS 4 Changes the function for which calls are counted when \fB\-\-basic\-counts=yes\fR @@ -2978,27 +2978,27 @@ Elfutils Debuginfod .IP " 2." 4 Debugging your program using Valgrind's gdbserver and GDB .RS 4 -\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver +\%http://www.valgrind.org/docs/manual/manual-core-adv.html#\:manual-core-adv.gdbserver .RE .IP " 3." 4 vgdb .RS 4 -\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.vgdb +\%http://www.valgrind.org/docs/manual/manual-core-adv.html#\:manual-core-adv.vgdb .RE .IP " 4." 4 Valgrind monitor commands .RS 4 -\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.valgrind-monitor-commands +\%http://www.valgrind.org/docs/manual/manual\-core\-adv.html\:#\:manual\-core\-adv.valgrind\-monitor\-commands .RE .IP " 5." 4 The Commentary .RS 4 -\%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.comment +\%http://www.valgrind.org/docs/manual/manual-core.html#\:manual-core.comment .RE .IP " 6." 4 Scheduling and Multi-Thread Performance .RS 4 -\%http://www.valgrind.org/docs/manual/manual-core.html#manual-core.pthreads_perf_sched +\%http://www.valgrind.org/docs/manual/manual-core.html#\:manual-core.pthreads_perf_sched .RE .IP " 7." 4 Cachegrind: a cache and branch-prediction profiler
Any program (person), that produces man pages, should check the output for defects by using (both groff and nroff) [gn]roff -mandoc -t -ww -b -z -K utf8 <man page> The same goes for man pages that are used as an input. For a style guide use mandoc -T lint -.- Any "autogenerator" should check its products with the above mentioned 'groff', 'mandoc', and additionally with 'nroff ...'. It should also check its input files for too long (> 80) lines. This is just a simple quality control measure. The "autogenerator" may have to be corrected to get a better man page, the source file may, and any additional file may. Common defects: Not removing trailing spaces (in in- and output). The reason for these trailing spaces should be found and eliminated. "git" has a "tool" to point out whitespace, see for example "git-apply(1)" and git-config(1)") Not beginning each input sentence on a new line. Line length and patch size should thus be reduced. The script "reportbug" uses 'quoted-printable' encoding when a line is longer than 1024 characters in an 'ascii' file. See man-pages(7), item "semantic newline". -.- The difference between the formatted output of the original and patched file can be seen with: nroff -mandoc <file1> > <out1> nroff -mandoc <file2> > <out2> diff -d -u <out1> <out2> and for groff, using \"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - \" instead of 'nroff -mandoc' Add the option '-t', if the file contains a table. Read the output from 'diff -d -u ...' with 'less -R' or similar. -.-. If 'man' (man-db) is used to check the manual for warnings, the following must be set: The option \"-warnings=w\" The environmental variable: export MAN_KEEP_STDERR=yes (or any non-empty value) or (produce only warnings): export MANROFFOPT=\"-ww -b -z\" export MAN_KEEP_STDERR=yes (or any non-empty value) -.-