summaryrefslogtreecommitdiffstats
path: root/doc/en/tips.html
blob: 6a0292aa12432caef6705f4d32578b9e620b82af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="Johannes Sixt">
   <title>KDbg - User's Manual - Tips and Tricks</title>
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><a href="index.html">Contents</a></p>
<h1>
Tips and Tricks</h1>

<ul>
<li>
You can use breakpoints as bookmarks: Just set a breakpoint and disable
it. Later, you can quickly come back to that breakpoint by double-clicking
it in the breakpoint list (or select it and click <i>View Code</i>). Since
breakpoints are persistent (i.e. KDbg remembers them across invocations
of a program), you get them back next time you invoke KDbg for that particular
program.</li>

<li>
You can display a value in the watch section in different ways by prepending
gdb's format specifiers in front of the variable to display. E.g. <tt>/x
var.member</tt> displays the <tt>var.member</tt> in hexadecimal notation.</li>

<li>
You can set breakpoints in a source files that belong to a shared library.
Such breakpoints will be marked as <em>orphaned</em> if the program is not active.
<A href="breakptlist.html#orphanedbp">Orphaned breakpoints</A> are not effective.
In order to make them effective, the program must stop at a time when the shared
library is loaded. For this it is usually sufficient to set a breakpoint in
<tt>main()</tt>. At the time when this breakpoint is hit, the orphaned breakpoints
in the shared library become effective.</li>

<li>
Debugging multi-threaded programs on NPTL-enabled Linux systems (kernel 2.6.x
or later and glibc 2.3.x or later) may sometimes fails; gdb stops the program
at unexpected instances. In this case the following may help (using bash):
<pre>
LD_ASSUME_KERNEL=2.4.19 kdbg myprogram
</pre>I.e. you run KDbg from the command line such that the old
Linuxthreads implementation is used.</li>
</ul>

</body>
</html>