source: general/prog/valgrind.xml@ 87065037

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/xf86-video-removal
Last change on this file since 87065037 was ecc2386, checked in by Douglas R. Reno <renodr@…>, 21 months ago

libevent: Typo fix
llvm: Document new test failures
Tags

  • Property mode set to 100644
File size: 11.1 KB
RevLine 
[f1607a4]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
[141ee0a5]7 <!ENTITY valgrind-download-http "https://sourceware.org/pub/valgrind/valgrind-&valgrind-version;.tar.bz2">
[ec67287]8 <!ENTITY valgrind-download-ftp "ftp://sourceware.org/pub/valgrind/valgrind-&valgrind-version;.tar.bz2">
[559cb4f]9 <!ENTITY valgrind-md5sum "4687a4990585a038c52f842448ef4e63">
10 <!ENTITY valgrind-size "16 MB">
11 <!ENTITY valgrind-buildsize "382 MB (add 65 MB for tests)">
12 <!ENTITY valgrind-time "0.5 SBU (Using parallelism=4; add 8.6 SBU for tests)">
[f1607a4]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
[f3429309]36 tools.
[f1607a4]37 </para>
38
[ecc2386]39 &lfs112_checked;
[f1607a4]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>
[559cb4f]74<!--
[a67b5f3]75 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
76 <itemizedlist spacing="compact">
77 <listitem>
78 <para>
79 Required patch:
[2c76fcd]80 <ulink url="&patch-root;/valgrind-&valgrind-version;-upstream_fixes-1.patch"/>
[a67b5f3]81 </para>
82 </listitem>
83 </itemizedlist>
[559cb4f]84-->
[f1607a4]85 <bridgehead renderas="sect3">Valgrind Dependencies</bridgehead>
86
87 <bridgehead renderas="sect4">Optional</bridgehead>
88 <para role="optional">
[8558044]89 <xref linkend="gdb"/> (for tests),
[ae6d3b8]90 <xref linkend="llvm"/> (with Clang), and
91 <xref linkend="which"/> (for tests)
[f1607a4]92 </para>
93
[ae6d3b8]94<!-- See "maintainer note", below
[f1607a4]95 <bridgehead renderas="sect4">Optional for regenerating the documentation</bridgehead>
96 <para role="optional">
[f3429309]97 <xref linkend="libxslt"/> and
[2d98031c]98 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>)
[f1607a4]99 </para>
[ae6d3b8]100-->
[f1607a4]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>
[559cb4f]108<!--
[a67b5f3]109 <para>
[2c76fcd]110 First, make several changes that are required for Valgrind to function on
[0ebcf2e]111 systems with glibc-2.35 installed:
[a67b5f3]112 </para>
113
[2c76fcd]114<screen><userinput remap="pre">patch -Np1 -i ../valgrind-&valgrind-version;-upstream_fixes-1.patch</userinput></screen>
[559cb4f]115-->
[a67b5f3]116
[bbe0fbf]117 <para>
118 Install <application>Valgrind</application> by running the following
[1b0d0188]119 commands:
120 </para>
121
[141ee0a5]122<screen><userinput>sed -i 's|/doc/valgrind||' docs/Makefile.in &amp;&amp;
[1b0d0188]123
124./configure --prefix=/usr \
[f1607a4]125 --datadir=/usr/share/doc/valgrind-&valgrind-version; &amp;&amp;
126make</userinput></screen>
127
128 <para>
[bbe0fbf]129 To test the results, issue: <command>make regtest</command>. The tests
[ae6d3b8]130 may hang forever if <xref linkend="gdb"/> is not installed. Some tests
[559cb4f]131 are known to hang also, depending on the version of glibc. A few tests
132 can fail in various suites. Problematic
[ae6d3b8]133 tests can be disabled by changing the <userinput>prereq:</userinput> line
[0639bb6]134 in the corresponding <filename>.vgtest</filename> file to
[ae6d3b8]135 <userinput>prereq: false</userinput>. For example:
[f1607a4]136 </para>
137
[141ee0a5]138<screen role="nodump"><userinput>sed -e 's@prereq:.*@prereq: false@' \
[ae6d3b8]139 -i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest</userinput></screen>
140
[7a9a7b26]141 <!-- 731 tests, 6 stderr failures, 0 stdout failures, 1 stderrB failure,
142 0 stdoutB failures, 1 post failure -bdubbs Apr 13. 22
[559cb4f]143 valgrind-3.19.0 -->
144
[ae6d3b8]145 <note>
146 <para>
147 The <application>OpenMP</application> tests are skipped if libgomp
148 has been compiled with <option>--enable-linux-futex</option> (the
149 default). If needed, just recompile the libgomp library from
150 the gcc build tree, passing <option>--disable-linux-futex</option>
151 to configure, storing the library to some place and changing the link
152 from <filename>/usr/lib/libgomp.so.1</filename> to point to the new
153 library.
154 </para>
155 </note>
156
157<!-- Note to maintainer: there is a long thread in ticket #5882 explaining
158 why we do not provide instructions to rebuild the documentation.
159 (still broken with TeXLive 2016) -->
160
[f1607a4]161 <para>
162 Now, as the <systemitem class="username">root</systemitem> user:
163 </para>
164
165<screen role="root"><userinput>make install</userinput></screen>
166
167 </sect2>
168
169 <sect2 role="commands">
170 <title>Command Explanations</title>
171
172 <para>
[9dfdd942]173 <command>sed -i ... docs/Makefile.in </command>: This sed provides for
[f1607a4]174 installing the documentation in a versioned directory.
175 </para>
176
[d30b7e7]177 <para>
[8558044]178 <option>--enable-lto=yes</option>: This option allows building Valgrind
179 with LTO (link time optimization). This produces a smaller/faster
[d30b7e7]180 Valgrind (up to 10%), but build time increases to about 5.5 SBU.
181 </para>
182
[f1607a4]183 </sect2>
184
185 <sect2 role="content">
186 <title>Contents</title>
187
188 <segmentedlist>
189 <segtitle>Installed Programs</segtitle>
[a2ce753]190 <segtitle>Installed Libraries</segtitle>
[f1607a4]191 <segtitle>Installed Directories</segtitle>
192
193 <seglistitem>
194 <seg>
[f3429309]195 callgrind_annotate,
196 callgrind_control,
197 cg_annotate,
198 cg_diff,
199 cg_merge,
200 ms_print,
201 valgrind,
[f1607a4]202 valgrind-di-server,
[f3429309]203 valgrind-listener, and
[f1607a4]204 vgdb
205 </seg>
206 <seg>
[a2ce753]207 None
[f1607a4]208 </seg>
209 <seg>
210 /usr/lib/valgrind,
[50cbddce]211 /usr/libexec/valgrind,
[f3429309]212 /usr/include/valgrind, and
[f1607a4]213 /usr/share/doc/valgrind-&valgrind-version;
214 </seg>
215 </seglistitem>
216 </segmentedlist>
217
218 <variablelist>
219 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
220 <?dbfo list-presentation="list"?>
221 <?dbhtml list-presentation="table"?>
222
223 <varlistentry id="valgrind-prog">
224 <term><command>valgrind</command></term>
225 <listitem>
226 <para>
[4c24eb0a]227 is a program for debugging and profiling Linux executables
[f1607a4]228 </para>
229 <indexterm zone="valgrind valgrind-prog">
230 <primary sortas="b-valgrind">valgrind</primary>
231 </indexterm>
232 </listitem>
233 </varlistentry>
234
235 <varlistentry id="callgrind_annotate">
236 <term><command>callgrind_annotate</command></term>
237 <listitem>
238 <para>
239 takes an output file produced by the
240 <application>Valgrind</application> tool Callgrind and prints the
[4c24eb0a]241 information in an easy-to-read form
[f1607a4]242 </para>
[6076396]243 <indexterm zone="valgrind callgrind_annotate">
[f1607a4]244 <primary sortas="b-callgrind_annotate">callgrind_annotate</primary>
245 </indexterm>
246 </listitem>
247 </varlistentry>
248
249 <varlistentry id="callgrind_control">
250 <term><command>callgrind_control</command></term>
251 <listitem>
252 <para>
[f3429309]253 controls programs being run by the <application>Valgrind</application>
[4c24eb0a]254 tool Callgrind
[f1607a4]255 </para>
256 <indexterm zone="valgrind callgrind_control">
257 <primary sortas="b-callgrind_control">callgrind_control</primary>
258 </indexterm>
259 </listitem>
260 </varlistentry>
261
262 <varlistentry id="cg_annotate">
263 <term><command>cg_annotate</command></term>
264 <listitem>
265 <para>
[f3429309]266 is a post-processing tool for the <application>Valgrind</application>
[4c24eb0a]267 tool Cachegrind
[f1607a4]268 </para>
269 <indexterm zone="valgrind cg_annotate">
270 <primary sortas="b-cg_annotate">cg_annotate</primary>
271 </indexterm>
272 </listitem>
273 </varlistentry>
274
275 <varlistentry id="cg_diff">
276 <term><command>cg_diff</command></term>
277 <listitem>
278 <para>
[4c24eb0a]279 compares two Cachegrind output files
[f1607a4]280 </para>
281 <indexterm zone="valgrind cg_diff">
282 <primary sortas="b-cg_diff">cg_diff</primary>
283 </indexterm>
284 </listitem>
285 </varlistentry>
286
287 <varlistentry id="cg_merge">
288 <term><command>cg_merge</command></term>
289 <listitem>
290 <para>
[4c24eb0a]291 merges multiple Cachegrind output files into one
[f1607a4]292 </para>
293 <indexterm zone="valgrind cg_merge">
294 <primary sortas="b-cg_merge">cg_merge</primary>
295 </indexterm>
296 </listitem>
297 </varlistentry>
298
299 <varlistentry id="ms_print">
300 <term><command>ms_print</command></term>
301 <listitem>
302 <para>
303 takes an output file produced by the <application>Valgrind</application>
[4c24eb0a]304 tool Massif and prints the information in an easy-to-read form
[f1607a4]305 </para>
306 <indexterm zone="valgrind ms_print">
307 <primary sortas="b-ms_print">ms_print</primary>
308 </indexterm>
309 </listitem>
310 </varlistentry>
311
312 <varlistentry id="valgrind-di-server">
313 <term><command>valgrind-di-server</command></term>
314 <listitem>
315 <para>
[f3429309]316 is a server that reads debuginfo from objects stored on a
[4c24eb0a]317 different machine
[f1607a4]318 </para>
319 <indexterm zone="valgrind valgrind-di-server">
320 <primary sortas="b-valgrind-di-server">valgrind-di-server</primary>
321 </indexterm>
322 </listitem>
323 </varlistentry>
324
325 <varlistentry id="valgrind-listener">
326 <term><command>valgrind-listener</command></term>
327 <listitem>
328 <para>
[4c24eb0a]329 listens on a socket for Valgrind commentary
[f1607a4]330 </para>
331 <indexterm zone="valgrind valgrind-listener">
332 <primary sortas="b-valgrind-listener">valgrind-listener</primary>
333 </indexterm>
334 </listitem>
335 </varlistentry>
336
337 <varlistentry id="vgdb">
338 <term><command>vgdb</command></term>
339 <listitem>
340 <para>
[4c24eb0a]341 is an intermediary between Valgrind and GDB or a shell
[f1607a4]342 </para>
343 <indexterm zone="valgrind vgdb">
344 <primary sortas="b-vgdb">vgdb</primary>
345 </indexterm>
346 </listitem>
347 </varlistentry>
348
349 </variablelist>
350
351 </sect2>
352
353</sect1>
Note: See TracBrowser for help on using the repository browser.