Package: valgrind Version: 1:3.20.0-2.1 Severity: minor Tags: upstream * 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 "groff -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>:214: warning: [page 2, 8.4i]: cannot break line Output from "test-nroff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z ": troff:<stdin>:204: warning [page 2, line 54]: cannot break line troff:<stdin>:209: warning [page 2, line 57]: cannot break line troff:<stdin>:214: warning [page 2, line 60]: cannot break 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.9-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.40-5 ii libc6-dbg 2.40-5 Versions of packages valgrind recommends: ii gdb 15.2-1+b1 pn valgrind-dbg <none> Versions of packages valgrind suggests: pn kcachegrind <none> pn valgrind-mpi <none> -- no debconf information
Input file is vgdb.1 Output from "mandoc -T lint vgdb.1": (shortened list) 1 input text line longer than 80 bytes: ("Valgrind to GDB") ... 1 input text line longer than 80 bytes: As a standalone util... 1 input text line longer than 80 bytes: Gives the number of ... 1 input text line longer than 80 bytes: If you specify a lar... 1 input text line longer than 80 bytes: In combination with ... 3 input text line longer than 80 bytes: Instructs a standalo... 1 input text line longer than 80 bytes: Instructs vgdb to se... 1 input text line longer than 80 bytes: Instructs vgdb to us... 1 input text line longer than 80 bytes: Must be given to bot... 1 input text line longer than 80 bytes: Specifies the PID of... 1 input text line longer than 80 bytes: To give more than on... 1 input text line longer than 80 bytes: argument in the GDB ... 1 input text line longer than 80 bytes: argument is not give... 1 input text line longer than 80 bytes: to a relay vgdb, you... 4 skipping paragraph macro: PP after SH -.-. Output from "test-groff -mandoc -t -ww -z vgdb.1": (shortened list) 1 cannot break line -.-. 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 1 -.-. 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 URLs (web address) 204 \%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver 209 \%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.vgdb 214 \%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.valgrind-monitor-commands -.-. Wrong distance 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 "\&". 38:("Valgrind to GDB") is used as an intermediary between Valgrind and GDB or a shell\&. It has two usage modes: 48:As a standalone utility, it is used from a shell command line to send monitor commands to a process running under Valgrind\&. For this usage, the vgdb OPTION(s) must be followed by the monitor command to send\&. To send more than one command, separate them with the 61:In combination with GDB "target remote |" command, it is used as the relay application between GDB and the Valgrind gdbserver\&. For this usage, only OPTION(s) can be given, but no COMMAND can be given\&. 67:Specifies the PID of the process to which vgdb must connect to\&. This option is useful in case more than one Valgrind gdbserver can be connected to\&. If the 79:Instructs vgdb to search for available Valgrind gdbservers for the specified number of seconds\&. This makes it possible start a vgdb process before starting the Valgrind gdbserver with which you intend the vgdb to communicate\&. This option is useful when used in conjunction with a 81:that is unique to the process you want to wait for\&. Also, if you use the 83:argument in the GDB "target remote" command, you must set the GDB remotetimeout to a value bigger than the \-\-wait argument value\&. See option 90:Gives the number of milliseconds after which vgdb will force the invocation of gdbserver embedded in Valgrind\&. The default value is 100 milliseconds\&. A value of 0 disables forced invocation\&. The forced invocation is used when vgdb is connected to a Valgrind gdbserver, and the Valgrind process has all its threads blocked in a system call\&. 92:If you specify a large value, you might need to increase the GDB "remotetimeout" value from its default value of 2 seconds\&. You should ensure that the timeout (in seconds) is bigger than the 94:value\&. For example, for 112:Instructs a standalone vgdb to exit if the Valgrind gdbserver it is connected to does not process a command in the specified number of seconds\&. The default value is to never time out\&. 117:Instructs vgdb to use tcp/ip and listen for GDB on the specified port nr rather than to use a pipe to communicate with GDB\&. Using tcp/ip allows one to have GDB running on one computer and debugging a Valgrind process running on another target computer\&. Example: 151:\fB\-c\fR\&. Example: 176:Instructs a standalone vgdb to show the state of the shared memory used by the Valgrind gdbserver\&. vgdb will exit after having shown the Valgrind gdbserver shared memory state\&. 181:Instructs vgdb to produce debugging output\&. Give multiple 183:args to increase the verbosity\&. When giving -.-. 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. Line 38, length 109 ("Valgrind to GDB") is used as an intermediary between Valgrind and GDB or a shell\&. It has two usage modes: Line 48, length 265 As a standalone utility, it is used from a shell command line to send monitor commands to a process running under Valgrind\&. For this usage, the vgdb OPTION(s) must be followed by the monitor command to send\&. To send more than one command, separate them with the Line 61, length 204 In combination with GDB "target remote |" command, it is used as the relay application between GDB and the Valgrind gdbserver\&. For this usage, only OPTION(s) can be given, but no COMMAND can be given\&. Line 67, length 158 Specifies the PID of the process to which vgdb must connect to\&. This option is useful in case more than one Valgrind gdbserver can be connected to\&. If the Line 69, length 137 argument is not given and multiple Valgrind gdbserver processes are running, vgdb will report the list of such processes and then exit\&. Line 74, length 174 Must be given to both Valgrind and vgdb if you want to change the default prefix for the FIFOs (named pipes) used for communication between the Valgrind gdbserver and vgdb\&. Line 79, length 283 Instructs vgdb to search for available Valgrind gdbservers for the specified number of seconds\&. This makes it possible start a vgdb process before starting the Valgrind gdbserver with which you intend the vgdb to communicate\&. This option is useful when used in conjunction with a Line 83, length 144 argument in the GDB "target remote" command, you must set the GDB remotetimeout to a value bigger than the \-\-wait argument value\&. See option Line 90, length 347 Gives the number of milliseconds after which vgdb will force the invocation of gdbserver embedded in Valgrind\&. The default value is 100 milliseconds\&. A value of 0 disables forced invocation\&. The forced invocation is used when vgdb is connected to a Valgrind gdbserver, and the Valgrind process has all its threads blocked in a system call\&. Line 92, length 192 If you specify a large value, you might need to increase the GDB "remotetimeout" value from its default value of 2 seconds\&. You should ensure that the timeout (in seconds) is bigger than the Line 112, length 187 Instructs a standalone vgdb to exit if the Valgrind gdbserver it is connected to does not process a command in the specified number of seconds\&. The default value is to never time out\&. Line 117, length 265 Instructs vgdb to use tcp/ip and listen for GDB on the specified port nr rather than to use a pipe to communicate with GDB\&. Using tcp/ip allows one to have GDB running on one computer and debugging a Valgrind process running on another target computer\&. Example: Line 150, length 86 To give more than one command to a standalone vgdb, separate the commands by an option Line 166, length 107 Instructs a standalone vgdb to report the list of the Valgrind gdbserver processes running and then exit\&. Line 176, length 180 Instructs a standalone vgdb to show the state of the shared memory used by the Valgrind gdbserver\&. vgdb will exit after having shown the Valgrind gdbserver shared memory state\&. Line 185, length 144 to a relay vgdb, you better redirect the standard error (stderr) of vgdb to a file to avoid interaction between GDB and vgdb debugging output\&. Line 194, length 96 \m[blue]\fBDebugging your program using Valgrind\*(Aqs gdbserver and GDB\fR\m[]\&\s-2\u[1]\d\s+2 Line 204, length 84 \%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver Line 214, length 100 \%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.valgrind-monitor-commands -.-. The name of a man page is typeset in bold and the section in roman (see man-pages(7)). 189:valgrind(1), -.-. Put a parenthetical sentence, phrase on a separate line, if not part of a code. See man-pages(7), item "semantic newline". Not considered in a patch, too many lines. vgdb.1:74:Must be given to both Valgrind and vgdb if you want to change the default prefix for the FIFOs (named pipes) used for communication between the Valgrind gdbserver and vgdb\&. vgdb.1:92:If you specify a large value, you might need to increase the GDB "remotetimeout" value from its default value of 2 seconds\&. You should ensure that the timeout (in seconds) is bigger than the -.-. No need for "\&" to be in front of a period (.), if there is a character in front of it 10:.TH "VGDB" "1" "01/02/2024" "Release 3\&.20\&.0" "vgdb" 38:("Valgrind to GDB") is used as an intermediary between Valgrind and GDB or a shell\&. It has two usage modes: 48:As a standalone utility, it is used from a shell command line to send monitor commands to a process running under Valgrind\&. For this usage, the vgdb OPTION(s) must be followed by the monitor command to send\&. To send more than one command, separate them with the 50:option\&. 61:In combination with GDB "target remote |" command, it is used as the relay application between GDB and the Valgrind gdbserver\&. For this usage, only OPTION(s) can be given, but no COMMAND can be given\&. 67:Specifies the PID of the process to which vgdb must connect to\&. This option is useful in case more than one Valgrind gdbserver can be connected to\&. If the 69:argument is not given and multiple Valgrind gdbserver processes are running, vgdb will report the list of such processes and then exit\&. 74:Must be given to both Valgrind and vgdb if you want to change the default prefix for the FIFOs (named pipes) used for communication between the Valgrind gdbserver and vgdb\&. 79:Instructs vgdb to search for available Valgrind gdbservers for the specified number of seconds\&. This makes it possible start a vgdb process before starting the Valgrind gdbserver with which you intend the vgdb to communicate\&. This option is useful when used in conjunction with a 81:that is unique to the process you want to wait for\&. Also, if you use the 83:argument in the GDB "target remote" command, you must set the GDB remotetimeout to a value bigger than the \-\-wait argument value\&. See option 85:(just below) for an example of setting the remotetimeout value\&. 90:Gives the number of milliseconds after which vgdb will force the invocation of gdbserver embedded in Valgrind\&. The default value is 100 milliseconds\&. A value of 0 disables forced invocation\&. The forced invocation is used when vgdb is connected to a Valgrind gdbserver, and the Valgrind process has all its threads blocked in a system call\&. 92:If you specify a large value, you might need to increase the GDB "remotetimeout" value from its default value of 2 seconds\&. You should ensure that the timeout (in seconds) is bigger than the 94:value\&. For example, for 112:Instructs a standalone vgdb to exit if the Valgrind gdbserver it is connected to does not process a command in the specified number of seconds\&. The default value is to never time out\&. 117:Instructs vgdb to use tcp/ip and listen for GDB on the specified port nr rather than to use a pipe to communicate with GDB\&. Using tcp/ip allows one to have GDB running on one computer and debugging a Valgrind process running on another target computer\&. Example: 145:where targetip is the ip address or hostname of the target computer\&. 151:\fB\-c\fR\&. Example: 157:vgdb v\&.set log_output \-c leak_check any 166:Instructs a standalone vgdb to report the list of the Valgrind gdbserver processes running and then exit\&. 171:Instructs vgdb to add timestamps to vgdb information messages\&. 176:Instructs a standalone vgdb to show the state of the shared memory used by the Valgrind gdbserver\&. vgdb will exit after having shown the Valgrind gdbserver shared memory state\&. 181:Instructs vgdb to produce debugging output\&. Give multiple 183:args to increase the verbosity\&. When giving 185:to a relay vgdb, you better redirect the standard error (stderr) of vgdb to a file to avoid interaction between GDB and vgdb debugging output\&. 190:$INSTALL/share/doc/valgrind/html/index\&.html 192:http://www\&.valgrind\&.org/docs/manual/index\&.html, 196:\m[blue]\fBValgrind monitor commands\fR\m[]\&\s-2\u[3]\d\s+2\&. 199:Philippe Waroquiers\&. -.-. Use ".na" (no adjustment) instead of ".ad l" and then ".ad" to begin the same adjustment again as before 26:.ad l -.-. Output from "test-groff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z ": troff:<stdin>:214: warning: [page 2, 8.4i]: cannot break line Output from "test-nroff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z ": troff:<stdin>:204: warning [page 2, line 54]: cannot break line troff:<stdin>:209: warning [page 2, line 57]: cannot break line troff:<stdin>:214: warning [page 2, line 60]: cannot break line -.-. Additionally (general): FSF office address update. See https://lists.gnu.org/archive/html/bug-gnulib/2024-09/msg00004.html -.- Abbreviations get a '\&' added after their final full stop (.) to mark them as such and not as an end of a sentence. There is no need to add a '\&' before a full stop (.) if it has a character before it! '\&' is only needed at the beginning of a line, if it otherwise starts with a control character "." or "'". Table headers, that are wider than any data in the corresponding column, do not need to be centered, so left adjustment is sufficient. The default value for kerning (.kern) and ligature (.lg) is one (1), so for n-mode (nroff) it should be set to zero (0) to avoid the processing of unnecessary code.
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. Not beginning each input sentence on a new line. Line length 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 -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 -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) -.-