source: general/prog/gdb.xml@ 105a90a

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since 105a90a was e1e58be, checked in by Pierre Labastie <pierre.labastie@…>, 9 months ago

Remove all ftp urls

neither firefox nor epiphany can download them, and they are not
well maintained, because rarely tested.
This is WIP because the "(HTTP)" part of "Download (HTTP)" will
need to be removed too.
But let's see what users think first...

  • Property mode set to 100644
File size: 10.9 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 gdb-download-http "&gnu-http;/gdb/gdb-&gdb-version;.tar.xz">
8 <!ENTITY gdb-download-ftp " ">
9 <!ENTITY gdb-md5sum "fbd3cdae16c581e8a742cb766ba35076">
10 <!ENTITY gdb-size "23 MB">
11 <!ENTITY gdb-buildsize "914 MB (add 805 MB for docs; add 575 MB for tests)">
12 <!ENTITY gdb-time "2.1 SBU (add 0.4 SBU for docs; add 18 SBU for tests; all using parallelism=4)">
13]>
14
15<sect1 id="gdb" xreflabel="GDB-&gdb-version;">
16 <?dbhtml filename="gdb.html"?>
17
18
19 <title>GDB-&gdb-version;</title>
20
21 <indexterm zone="gdb">
22 <primary sortas="a-GDB">GDB</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to GDB</title>
27
28 <para>
29 <application>GDB</application>, the GNU Project debugger, allows you
30 to see what is going on <quote>inside</quote> another program while it
31 executes -- or what another program was doing at the moment it crashed.
32 Note that <application>GDB</application> is most effective when tracing
33 programs and libraries that were built with debugging symbols and not
34 stripped.
35 </para>
36
37 &lfs120_checked;
38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>
43 Download (HTTP): <ulink url="&gdb-download-http;"/>
44 </para>
45 </listitem>
46 <listitem>
47 <para>
48 Download (FTP): <ulink url="&gdb-download-ftp;"/>
49 </para>
50 </listitem>
51 <listitem>
52 <para>
53 Download MD5 sum: &gdb-md5sum;
54 </para>
55 </listitem>
56 <listitem>
57 <para>
58 Download size: &gdb-size;
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 Estimated disk space required: &gdb-buildsize;
64 </para>
65 </listitem>
66 <listitem>
67 <para>
68 Estimated build time: &gdb-time;
69 </para>
70 </listitem>
71 </itemizedlist>
72 <!--
73 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
74 <itemizedlist spacing="compact">
75 <listitem>
76 <para>
77 Required patch:
78 <ulink url="&patch-root;/gdb-&gdb-version;-upstream_fixes-1.patch"/>
79 </para>
80 </listitem>
81 </itemizedlist>
82 -->
83 <bridgehead renderas="sect3">GDB Dependencies</bridgehead>
84
85 <bridgehead renderas="sect4">Recommended Runtime Dependency</bridgehead>
86 <para role="recommended">
87 <xref linkend="six"/> (Python 3 module, required at run-time to
88 use GDB scripts from various LFS/BLFS packages with Python 3
89 installed in LFS)
90 </para>
91
92 <bridgehead renderas="sect4">Optional</bridgehead>
93 <para role="optional">
94 <xref linkend="doxygen"/>,
95 <xref linkend="gcc"/> (ada, gfortran, and go are used for tests),
96 <xref linkend="guile"/>,
97 <xref linkend="rust"/> (used for some tests),
98 <xref linkend="valgrind"/>, and
99 <ulink url="https://sourceware.org/systemtap/">SystemTap</ulink>
100 (run-time, used for tests)
101 </para>
102
103 </sect2>
104
105 <sect2 role="installation">
106 <title>Installation of GDB</title>
107 <!--
108 <para>
109 First, apply a patch that fixes problems when debugging programs compiled
110 with <xref linkend="rust" role="nodep"/>:
111 </para>
112
113<screen><userinput remap="pre">patch -Np1 -i ../gdb-&gdb-version;-upstream_fixes-1.patch</userinput></screen>
114-->
115 <para>
116 Install <application>GDB</application> by running the following
117 commands:
118 </para>
119
120<screen><userinput>mkdir build &amp;&amp;
121cd build &amp;&amp;
122
123../configure --prefix=/usr \
124 --with-system-readline \
125 --with-python=/usr/bin/python3 &amp;&amp;
126make</userinput></screen>
127
128 <para>
129 Optionally, to build the API documentation using
130 <xref linkend="doxygen"/>, run:
131 </para>
132
133<screen remap="doc"><userinput>make -C gdb/doc doxy</userinput></screen>
134
135 <para>
136 To test the results, issue:
137 </para>
138
139<screen remap="test"><userinput>pushd gdb/testsuite &amp;&amp;
140make site.exp &amp;&amp;
141echo "set gdb_test_timeout 120" &gt;&gt; site.exp &amp;&amp;
142runtest
143popd</userinput></screen>
144
145 <para>
146 See <emphasis>gdb/testsuite/README</emphasis> and <ulink
147 url="https://sourceware.org/gdb/wiki/TestingGDB">TestingGDB</ulink>.
148 There are many problems with the test suite:
149 </para>
150
151 <itemizedlist>
152 <listitem>
153 <para>
154 Clean directories are needed if re-running the tests. For that
155 reason, make a copy of the compiled source code
156 directory before the tests in case you need to run the tests again.
157 </para>
158 </listitem>
159
160 <listitem>
161 <para>
162 Results depend on installed compilers.
163 </para>
164 </listitem>
165<!-- I did not see this
166 <listitem>
167 <para>
168 There are a large number of timeouts (there is a variable
169 that can be set to increase time for timeout, but
170 changing it will result in a different number of tests being
171 run).
172 </para>
173 </listitem>
174or this
175 <listitem>
176 <para>
177 There are failures associated with system readline 6.x.
178 </para>
179 </listitem>
180-->
181<!--
182 <listitem>
183 <para>
184 A few tests assume that the header file
185 <filename>&lt;sys/sdt.h&gt;</filename>, part of <ulink
186 url="https://sourceware.org/systemtap/">SystemTap</ulink>, is
187 present.
188 </para>
189 </listitem>
190-->
191<!-- I don't know if this is true or not. I tested on a Haswell.
192 <listitem>
193 <para>
194 If the test suite is run on a Skylake-based Intel CPU or newer,
195 many tests will fail due to the removal of the deprecated/problematic
196 libmpx library in GCC.
197 </para>
198 </listitem>
199-->
200 <listitem>
201 <para>
202<!-- for gdb-11.1, gcc-11.2 - pierre
203 A test run of the test suite had about 1700 unexpected failures
204 (out of over 80000 tests). Over 1370 of the failures were related
205 to FORTRAN tests. -->
206<!-- for gdb-12.1, gcc-11.3.0 - bdubbs
207 A test run of the test suite had a little over 200 unexpected failures
208 out of over 94000 tests.-->
209<!-- for gdb-13.0, gcc-12.2.0 - bdubbs
210 A test run of the test suite had 33 unexpected failures
211 out of over 106000 tests. -->
212<!-- for gdb-13.2, gcc-13.1.0 - pierre -->
213 A test run of the test suite had 183 unexpected failures
214 out of over 105000 tests.
215 </para>
216 </listitem>
217
218 <listitem>
219 <para>
220 On some systems, the gdb.tui test suite will fail if running over
221 SSH.
222 </para>
223 </listitem>
224
225 <listitem>
226 <para>
227 On some AMD-based systems, over 200 additional tests
228 may fail due to a difference in the threading implementation
229 on those CPUs.
230 </para>
231 </listitem>
232
233 </itemizedlist>
234
235 <para>
236 Now, as the <systemitem class="username">root</systemitem> user:
237 </para>
238
239<screen role="root"><userinput>make -C gdb install &amp;&amp;
240make -C gdbserver install</userinput></screen>
241
242 <para>
243 If you have built the API documentation, it is now in gdb/doc/doxy.
244 You can install it (as the <systemitem class="username">root</systemitem>
245 user):
246 </para>
247
248<screen role="root"
249 remap="doc"><userinput>install -d /usr/share/doc/gdb-&gdb-version; &amp;&amp;
250rm -rf gdb/doc/doxy/xml &amp;&amp;
251cp -Rv gdb/doc/doxy /usr/share/doc/gdb-&gdb-version;</userinput></screen>
252
253 </sect2>
254
255 <sect2 role="commands">
256 <title>Command Explanations</title>
257
258 <para>
259 <parameter>--with-system-readline</parameter>: This switch forces
260 <application>GDB</application> to use the copy of
261 <application>Readline</application> installed in LFS.
262 </para>
263
264 <para>
265 <parameter>--with-python=/usr/bin/python3</parameter>: This switch
266 forces <application>GDB</application> to use Python 3.
267 </para>
268
269 </sect2>
270
271 <sect2 role="content">
272 <title>Contents</title>
273
274 <segmentedlist>
275 <segtitle>Installed Programs</segtitle>
276 <segtitle>Installed Library</segtitle>
277 <segtitle>Installed Directories</segtitle>
278
279 <seglistitem>
280 <seg>
281 gcore, gdb, gdbserver, and gdb-add-index
282 </seg>
283 <seg>
284 libinproctrace.so
285 </seg>
286 <seg>
287 /usr/{include,share}/gdb and /usr/share/doc/gdb-&gdb-version;
288 </seg>
289 </seglistitem>
290 </segmentedlist>
291
292 <variablelist>
293 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
294 <?dbfo list-presentation="list"?>
295 <?dbhtml list-presentation="table"?>
296
297 <varlistentry id="gcore">
298 <term><command>gcore</command></term>
299 <listitem>
300 <para>
301 generates a core dump of a running program
302 </para>
303 <indexterm zone="gdb gcore">
304 <primary sortas="b-gcore">gcore</primary>
305 </indexterm>
306 </listitem>
307 </varlistentry>
308
309 <varlistentry id="gdb-prog">
310 <term><command>gdb</command></term>
311 <listitem>
312 <para>
313 is the GNU Debugger
314 </para>
315 <indexterm zone="gdb gdb-prog">
316 <primary sortas="b-gdb-prog">gdb-prog</primary>
317 </indexterm>
318 </listitem>
319 </varlistentry>
320
321 <varlistentry id="gdbserver">
322 <term><command>gdbserver</command></term>
323 <listitem>
324 <para>
325 is a remote server for the GNU debugger (it allows programs
326 to be debugged from a different machine)
327 </para>
328 <indexterm zone="gdb gdbserver">
329 <primary sortas="b-gdbserver">gdbserver</primary>
330 </indexterm>
331 </listitem>
332 </varlistentry>
333
334 <varlistentry id="gdb-add-index">
335 <term><command>gdb-add-index</command></term>
336 <listitem>
337 <para>
338 Allows adding index files to ELF binaries. This speeds up
339 <command>gdb</command> start on large programs.
340 </para>
341 <indexterm zone="gdb gdb-add-index">
342 <primary sortas="b-gdb-add-index">gdb-add-index</primary>
343 </indexterm>
344 </listitem>
345 </varlistentry>
346
347 <varlistentry id="libinproctrace">
348 <term><filename class="libraryfile">libinproctrace.so</filename></term>
349 <listitem>
350 <para>
351 contains functions for the in-process tracing agent. The agent
352 allows for installing fast tracepoints, listing static tracepoint
353 markers, probing static tracepoints markers, and starting trace
354 monitoring.
355 </para>
356 <indexterm zone="gdb libinproctrace">
357 <primary sortas="c-libinproctrace">libinproctrace.so</primary>
358 </indexterm>
359 </listitem>
360 </varlistentry>
361
362 </variablelist>
363
364 </sect2>
365
366</sect1>
Note: See TracBrowser for help on using the repository browser.