source: general/prog/valgrind.xml@ 7fd2c27

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt perl-modules 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 7fd2c27 was 7fd2c27, checked in by Douglas R. Reno <renodr@…>, 7 years ago

Tags, Tags, and More Tags!

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

  • Property mode set to 100644
File size: 10.7 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 "http://valgrind.org/downloads/valgrind-&valgrind-version;.tar.bz2">
8 <!ENTITY valgrind-download-ftp " ">
9 <!ENTITY valgrind-md5sum "6eb03c0c10ea917013a7622e483d61bb">
10 <!ENTITY valgrind-size "12 MB">
11 <!ENTITY valgrind-buildsize "344 MB (additional 228 MB for tests)">
12 <!ENTITY valgrind-time "1.2 SBU (additional 5.1 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 &lfs80_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 <bridgehead renderas="sect3">Valgrind Dependencies</bridgehead>
77
78 <bridgehead renderas="sect4">Optional</bridgehead>
79 <para role="optional">
80 <xref linkend="boost"/>,
81 <xref linkend="llvm"/> (with Clang),
82 <xref linkend="gdb"/> (for tests),
83 <xref linkend="which"/> (for tests),
84 <xref linkend="bind"/> or <xref linkend="bind-utils"/> (for tests),
85 and
86 <ulink url="http://www.openmp.org">OpenMP</ulink>
87 </para>
88
89 <bridgehead renderas="sect4">Optional for regenerating the documentation</bridgehead>
90 <para role="optional">
91 <xref linkend="libxslt"/> and
92 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>)
93 </para>
94
95 <para condition="html" role="usernotes">User Notes:
96 <ulink url="&blfs-wiki;/valgrind"/>
97 </para>
98 </sect2>
99
100 <sect2 role="installation">
101 <title>Installation of Valgrind</title>
102
103 <para>
104 Install <application>Valgrind</application> by running the following
105 commands:
106 </para>
107
108<screen><userinput>sed -i 's|/doc/valgrind||' docs/Makefile.in &amp;&amp;
109
110./configure --prefix=/usr \
111 --datadir=/usr/share/doc/valgrind-&valgrind-version; &amp;&amp;
112make</userinput></screen>
113
114 <note>
115 <para>
116 To run the tests for this package, valgrind requires a version of the
117 /lib/ld-2.24.so (or later) library with debugging symbols present.
118 Normally in LFS these debugging symbols are stripped at the end of
119 Chapter 6. To get this library, glibc must be rebuilt with the current
120 glibc version using the same compiler that was used to build LFS. The
121 ld.so can then be renamed to ld-2.24.so.dbg and copied to /lib.
122 Then a symlink needs to be changed:</para>
123
124<screen role="nodump"><userinput>ln -sfv ld-2.24.so.dbg /lib/ld-linux-x86-64.so.2</userinput></screen>
125
126 <para>
127 Adjust the above instruction as needed for a 32-bit system or for a
128 different version of glibc.
129 </para>
130
131 <para>
132 In addition, other glibc libraries with debugging symbols present
133 may be needed for some tests.
134 </para>
135 </note>
136
137
138 <para>
139 To test the results, issue: <command>make regtest</command>. The tests
140 may hang forever if <xref linkend="gdb"/> is not installed.
141 </para>
142<!-- Note to maintainer: Recheck when next texlive (2015) is released.
143 <para>
144 If you wish to regenerate the documentation, run:
145 </para>
146
147<screen><userinput>make -C docs download-docs</userinput></screen>
148-->
149 <para>
150 Now, as the <systemitem class="username">root</systemitem> user:
151 </para>
152
153<screen role="root"><userinput>make install</userinput></screen>
154
155 </sect2>
156
157 <sect2 role="commands">
158 <title>Command Explanations</title>
159
160 <para>
161 <command>sed -i ... docs/Makefile.in </command>: This sed provides for
162 installing the documentation in a versioned directory.
163 </para>
164
165 </sect2>
166
167 <sect2 role="content">
168 <title>Contents</title>
169
170 <segmentedlist>
171 <segtitle>Installed Programs</segtitle>
172 <segtitle>Installed Library</segtitle>
173 <segtitle>Installed Directories</segtitle>
174
175 <seglistitem>
176 <seg>
177 callgrind_annotate,
178 callgrind_control,
179 cg_annotate,
180 cg_diff,
181 cg_merge,
182 ms_print,
183 valgrind,
184 valgrind-di-server,
185 valgrind-listener, and
186 vgdb
187 </seg>
188 <seg>
189 libcoregrind-&lt;Arch&gt;-linux.a,
190 libreplacemalloc_toolpreload-&lt;Arch&gt;-linux.a,
191 libvex-&lt;Arch&gt;-linux.a,
192 libvexmultiarch-amd64-linux.a,
193 vgpreload_core-&lt;Arch&gt;-linux.so,
194 vgpreload_drd-&lt;Arch&gt;-linux.so,
195 vgpreload_exp-dhat-&lt;Arch&gt;-linux.so,
196 vgpreload_exp-sgcheck-&lt;Arch&gt;-linux.so,
197 vgpreload_helgrind-&lt;Arch&gt;-linux.so,
198 vgpreload_massif-&lt;Arch&gt;-linux.so, and
199 vgpreload_memcheck-&lt;Arch&gt;-linux.so, where
200 &lt;Arch&gt; is x86 or amd64
201 </seg>
202 <seg>
203 /usr/lib/valgrind,
204 /usr/include/valgrind, and
205 /usr/share/doc/valgrind-&valgrind-version;
206 </seg>
207 </seglistitem>
208 </segmentedlist>
209
210 <variablelist>
211 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
212 <?dbfo list-presentation="list"?>
213 <?dbhtml list-presentation="table"?>
214
215 <varlistentry id="valgrind-prog">
216 <term><command>valgrind</command></term>
217 <listitem>
218 <para>
219 is a program for debugging and profiling Linux executables.
220 </para>
221 <indexterm zone="valgrind valgrind-prog">
222 <primary sortas="b-valgrind">valgrind</primary>
223 </indexterm>
224 </listitem>
225 </varlistentry>
226
227 <varlistentry id="callgrind_annotate">
228 <term><command>callgrind_annotate</command></term>
229 <listitem>
230 <para>
231 takes an output file produced by the
232 <application>Valgrind</application> tool Callgrind and prints the
233 information in an easy-to-read form.
234 </para>
235 <indexterm zone="callgrind_annotate">
236 <primary sortas="b-callgrind_annotate">callgrind_annotate</primary>
237 </indexterm>
238 </listitem>
239 </varlistentry>
240
241 <varlistentry id="callgrind_control">
242 <term><command>callgrind_control</command></term>
243 <listitem>
244 <para>
245 controls programs being run by the <application>Valgrind</application>
246 tool Callgrind.
247 </para>
248 <indexterm zone="valgrind callgrind_control">
249 <primary sortas="b-callgrind_control">callgrind_control</primary>
250 </indexterm>
251 </listitem>
252 </varlistentry>
253
254 <varlistentry id="cg_annotate">
255 <term><command>cg_annotate</command></term>
256 <listitem>
257 <para>
258 is a post-processing tool for the <application>Valgrind</application>
259 tool Cachegrind.
260 </para>
261 <indexterm zone="valgrind cg_annotate">
262 <primary sortas="b-cg_annotate">cg_annotate</primary>
263 </indexterm>
264 </listitem>
265 </varlistentry>
266
267 <varlistentry id="cg_diff">
268 <term><command>cg_diff</command></term>
269 <listitem>
270 <para>
271 compares two Cachegrind output files.
272 </para>
273 <indexterm zone="valgrind cg_diff">
274 <primary sortas="b-cg_diff">cg_diff</primary>
275 </indexterm>
276 </listitem>
277 </varlistentry>
278
279 <varlistentry id="cg_merge">
280 <term><command>cg_merge</command></term>
281 <listitem>
282 <para>
283 merges multiple Cachegrind output files into one.
284 </para>
285 <indexterm zone="valgrind cg_merge">
286 <primary sortas="b-cg_merge">cg_merge</primary>
287 </indexterm>
288 </listitem>
289 </varlistentry>
290
291 <varlistentry id="ms_print">
292 <term><command>ms_print</command></term>
293 <listitem>
294 <para>
295 takes an output file produced by the <application>Valgrind</application>
296 tool Massif and prints the information in an easy-to-read form.
297 </para>
298 <indexterm zone="valgrind ms_print">
299 <primary sortas="b-ms_print">ms_print</primary>
300 </indexterm>
301 </listitem>
302 </varlistentry>
303
304 <varlistentry id="valgrind-di-server">
305 <term><command>valgrind-di-server</command></term>
306 <listitem>
307 <para>
308 is a server that reads debuginfo from objects stored on a
309 different machine.
310 </para>
311 <indexterm zone="valgrind valgrind-di-server">
312 <primary sortas="b-valgrind-di-server">valgrind-di-server</primary>
313 </indexterm>
314 </listitem>
315 </varlistentry>
316
317 <varlistentry id="valgrind-listener">
318 <term><command>valgrind-listener</command></term>
319 <listitem>
320 <para>
321 listens on a socket for Valgrind commentary.
322 </para>
323 <indexterm zone="valgrind valgrind-listener">
324 <primary sortas="b-valgrind-listener">valgrind-listener</primary>
325 </indexterm>
326 </listitem>
327 </varlistentry>
328
329 <varlistentry id="vgdb">
330 <term><command>vgdb</command></term>
331 <listitem>
332 <para>
333 is an intermediary between Valgrind and GDB or a shell.
334 </para>
335 <indexterm zone="valgrind vgdb">
336 <primary sortas="b-vgdb">vgdb</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 </variablelist>
342
343 </sect2>
344
345</sect1>
Note: See TracBrowser for help on using the repository browser.