source: general/prog/valgrind.xml@ 32f5b6f

11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/soup3 xry111/xf86-video-removal
Last change on this file since 32f5b6f was 0ebcf2e, checked in by Douglas R. Reno <renodr@…>, 2 years ago

Two different tweaks:

Valgrind: Fix crash and warnings with glibc-2.35
bind-utils: Add --disable-doh as an option, and add nghttp2 as a
recommended dependency.

  • Property mode set to 100644
File size: 11.0 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY valgrind-download-http "https://sourceware.org/pub/valgrind/valgrind-&valgrind-version;.tar.bz2">
8 <!ENTITY valgrind-download-ftp "ftp://sourceware.org/pub/valgrind/valgrind-&valgrind-version;.tar.bz2">
9 <!ENTITY valgrind-md5sum "de56a5532b0c81781db677ca712c585a">
10 <!ENTITY valgrind-size "15 MB">
11 <!ENTITY valgrind-buildsize "550 MB (add 62 MB for tests)">
12 <!ENTITY valgrind-time "0.5 SBU (Using parallelism=4; add 7.5 SBU for tests)">
13]>
14
15<sect1 id="valgrind" xreflabel="Valgrind-&valgrind-version;">
16 <?dbhtml filename="valgrind.html"?>
17
18 <sect1info>
19 <date>$Date$</date>
20 </sect1info>
21
22 <title>Valgrind-&valgrind-version;</title>
23
24 <indexterm zone="valgrind">
25 <primary sortas="a-Valgrind">Valgrind</primary>
26 </indexterm>
27
28 <sect2 role="package">
29 <title>Introduction to Valgrind</title>
30
31 <para>
32 <application>Valgrind</application> is an instrumentation framework for
33 building dynamic analysis tools. There are Valgrind tools that can
34 automatically detect many memory management and threading bugs, and
35 profile programs in detail. Valgrind can also be used to build new
36 tools.
37 </para>
38
39 &lfs111_checked;
40
41 <bridgehead renderas="sect3">Package Information</bridgehead>
42 <itemizedlist spacing="compact">
43 <listitem>
44 <para>
45 Download (HTTP): <ulink url="&valgrind-download-http;"/>
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 Download (FTP): <ulink url="&valgrind-download-ftp;"/>
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download MD5 sum: &valgrind-md5sum;
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Download size: &valgrind-size;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Estimated disk space required: &valgrind-buildsize;
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Estimated build time: &valgrind-time;
71 </para>
72 </listitem>
73 </itemizedlist>
74
75 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
76 <itemizedlist spacing="compact">
77 <listitem>
78 <para>
79 Required patch:
80 <ulink url="&patch-root;/valgrind-&valgrind-version;-upstream_fixes-1.patch"/>
81 </para>
82 </listitem>
83 </itemizedlist>
84
85 <bridgehead renderas="sect3">Valgrind Dependencies</bridgehead>
86
87 <bridgehead renderas="sect4">Optional</bridgehead>
88 <para role="optional">
89 <xref linkend="gdb"/> (for tests),
90 <xref linkend="llvm"/> (with Clang), and
91 <xref linkend="which"/> (for tests)
92 </para>
93
94<!-- See "maintainer note", below
95 <bridgehead renderas="sect4">Optional for regenerating the documentation</bridgehead>
96 <para role="optional">
97 <xref linkend="libxslt"/> and
98 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>)
99 </para>
100-->
101 <para condition="html" role="usernotes">User Notes:
102 <ulink url="&blfs-wiki;/valgrind"/>
103 </para>
104 </sect2>
105
106 <sect2 role="installation">
107 <title>Installation of Valgrind</title>
108
109 <para>
110 First, make several changes that are required for Valgrind to function on
111 systems with glibc-2.35 installed:
112 </para>
113
114<screen><userinput remap="pre">patch -Np1 -i ../valgrind-&valgrind-version;-upstream_fixes-1.patch</userinput></screen>
115
116
117 <para>
118 Install <application>Valgrind</application> by running the following
119 commands:
120 </para>
121
122<screen><userinput>sed -i 's|/doc/valgrind||' docs/Makefile.in &amp;&amp;
123
124./configure --prefix=/usr \
125 --datadir=/usr/share/doc/valgrind-&valgrind-version; &amp;&amp;
126make</userinput></screen>
127
128 <para>
129 To test the results, issue: <command>make regtest</command>. The tests
130 may hang forever if <xref linkend="gdb"/> is not installed. Some tests
131 are known to hang also, depending on the version of glibc. A few test
132 can fail in various suites. Problematic
133 tests can be disabled by changing the <userinput>prereq:</userinput> line
134 in the corresponding <filename>.vgtest</filename> file to
135 <userinput>prereq: false</userinput>. For example:
136 </para>
137
138<screen role="nodump"><userinput>sed -e 's@prereq:.*@prereq: false@' \
139 -i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest</userinput></screen>
140
141 <note>
142 <para>
143 The <application>OpenMP</application> tests are skipped if libgomp
144 has been compiled with <option>--enable-linux-futex</option> (the
145 default). If needed, just recompile the libgomp library from
146 the gcc build tree, passing <option>--disable-linux-futex</option>
147 to configure, storing the library to some place and changing the link
148 from <filename>/usr/lib/libgomp.so.1</filename> to point to the new
149 library.
150 </para>
151 </note>
152
153<!-- Note to maintainer: there is a long thread in ticket #5882 explaining
154 why we do not provide instructions to rebuild the documentation.
155 (still broken with TeXLive 2016) -->
156
157 <para>
158 Now, as the <systemitem class="username">root</systemitem> user:
159 </para>
160
161<screen role="root"><userinput>make install</userinput></screen>
162
163 </sect2>
164
165 <sect2 role="commands">
166 <title>Command Explanations</title>
167
168 <para>
169 <command>sed -i ... docs/Makefile.in </command>: This sed provides for
170 installing the documentation in a versioned directory.
171 </para>
172
173 <para>
174 <option>--enable-lto=yes</option>: This option allows building Valgrind
175 with LTO (link time optimization). This produces a smaller/faster
176 Valgrind (up to 10%), but build time increases to about 5.5 SBU.
177 </para>
178
179 </sect2>
180
181 <sect2 role="content">
182 <title>Contents</title>
183
184 <segmentedlist>
185 <segtitle>Installed Programs</segtitle>
186 <segtitle>Installed Libraries</segtitle>
187 <segtitle>Installed Directories</segtitle>
188
189 <seglistitem>
190 <seg>
191 callgrind_annotate,
192 callgrind_control,
193 cg_annotate,
194 cg_diff,
195 cg_merge,
196 ms_print,
197 valgrind,
198 valgrind-di-server,
199 valgrind-listener, and
200 vgdb
201 </seg>
202 <seg>
203 None
204 </seg>
205 <seg>
206 /usr/lib/valgrind,
207 /usr/libexec/valgrind,
208 /usr/include/valgrind, and
209 /usr/share/doc/valgrind-&valgrind-version;
210 </seg>
211 </seglistitem>
212 </segmentedlist>
213
214 <variablelist>
215 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
216 <?dbfo list-presentation="list"?>
217 <?dbhtml list-presentation="table"?>
218
219 <varlistentry id="valgrind-prog">
220 <term><command>valgrind</command></term>
221 <listitem>
222 <para>
223 is a program for debugging and profiling Linux executables
224 </para>
225 <indexterm zone="valgrind valgrind-prog">
226 <primary sortas="b-valgrind">valgrind</primary>
227 </indexterm>
228 </listitem>
229 </varlistentry>
230
231 <varlistentry id="callgrind_annotate">
232 <term><command>callgrind_annotate</command></term>
233 <listitem>
234 <para>
235 takes an output file produced by the
236 <application>Valgrind</application> tool Callgrind and prints the
237 information in an easy-to-read form
238 </para>
239 <indexterm zone="valgrind callgrind_annotate">
240 <primary sortas="b-callgrind_annotate">callgrind_annotate</primary>
241 </indexterm>
242 </listitem>
243 </varlistentry>
244
245 <varlistentry id="callgrind_control">
246 <term><command>callgrind_control</command></term>
247 <listitem>
248 <para>
249 controls programs being run by the <application>Valgrind</application>
250 tool Callgrind
251 </para>
252 <indexterm zone="valgrind callgrind_control">
253 <primary sortas="b-callgrind_control">callgrind_control</primary>
254 </indexterm>
255 </listitem>
256 </varlistentry>
257
258 <varlistentry id="cg_annotate">
259 <term><command>cg_annotate</command></term>
260 <listitem>
261 <para>
262 is a post-processing tool for the <application>Valgrind</application>
263 tool Cachegrind
264 </para>
265 <indexterm zone="valgrind cg_annotate">
266 <primary sortas="b-cg_annotate">cg_annotate</primary>
267 </indexterm>
268 </listitem>
269 </varlistentry>
270
271 <varlistentry id="cg_diff">
272 <term><command>cg_diff</command></term>
273 <listitem>
274 <para>
275 compares two Cachegrind output files
276 </para>
277 <indexterm zone="valgrind cg_diff">
278 <primary sortas="b-cg_diff">cg_diff</primary>
279 </indexterm>
280 </listitem>
281 </varlistentry>
282
283 <varlistentry id="cg_merge">
284 <term><command>cg_merge</command></term>
285 <listitem>
286 <para>
287 merges multiple Cachegrind output files into one
288 </para>
289 <indexterm zone="valgrind cg_merge">
290 <primary sortas="b-cg_merge">cg_merge</primary>
291 </indexterm>
292 </listitem>
293 </varlistentry>
294
295 <varlistentry id="ms_print">
296 <term><command>ms_print</command></term>
297 <listitem>
298 <para>
299 takes an output file produced by the <application>Valgrind</application>
300 tool Massif and prints the information in an easy-to-read form
301 </para>
302 <indexterm zone="valgrind ms_print">
303 <primary sortas="b-ms_print">ms_print</primary>
304 </indexterm>
305 </listitem>
306 </varlistentry>
307
308 <varlistentry id="valgrind-di-server">
309 <term><command>valgrind-di-server</command></term>
310 <listitem>
311 <para>
312 is a server that reads debuginfo from objects stored on a
313 different machine
314 </para>
315 <indexterm zone="valgrind valgrind-di-server">
316 <primary sortas="b-valgrind-di-server">valgrind-di-server</primary>
317 </indexterm>
318 </listitem>
319 </varlistentry>
320
321 <varlistentry id="valgrind-listener">
322 <term><command>valgrind-listener</command></term>
323 <listitem>
324 <para>
325 listens on a socket for Valgrind commentary
326 </para>
327 <indexterm zone="valgrind valgrind-listener">
328 <primary sortas="b-valgrind-listener">valgrind-listener</primary>
329 </indexterm>
330 </listitem>
331 </varlistentry>
332
333 <varlistentry id="vgdb">
334 <term><command>vgdb</command></term>
335 <listitem>
336 <para>
337 is an intermediary between Valgrind and GDB or a shell
338 </para>
339 <indexterm zone="valgrind vgdb">
340 <primary sortas="b-vgdb">vgdb</primary>
341 </indexterm>
342 </listitem>
343 </varlistentry>
344
345 </variablelist>
346
347 </sect2>
348
349</sect1>
Note: See TracBrowser for help on using the repository browser.