source: general/prog/valgrind.xml@ 9fd39001

11.0 11.1 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 upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 9fd39001 was a2ce753, checked in by Douglas R. Reno <renodr@…>, 3 years ago

Update to valgrind-3.17.0
Update to lxml-4.6.3 (Python Module - Security Update)
Update to nettle-3.7.2 (Security Update)
Update to Thunar-4.16.6
Update to cairo-1.17.4

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@24406 af4574ff-66df-0310-9fd7-8a98e5e911e0

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