<!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>