summaryrefslogtreecommitdiffstats
path: root/doc/en
diff options
context:
space:
mode:
authorRay-V <ray-v@inbox.lv>2021-06-13 21:47:32 +0100
committerSlávek Banko <slavek.banko@axis.cz>2021-06-25 11:58:23 +0200
commitd25245fe76e6b975515d0d39636b38d08c5a9c61 (patch)
tree204dd8265bda3e247ed5f3a054349ffe8b5946d0 /doc/en
parent4b299dc023ad2da1d0fdba013d9f3ea901b9d8cf (diff)
downloadkdbg-d25245fe76e6b975515d0d39636b38d08c5a9c61.tar.gz
kdbg-d25245fe76e6b975515d0d39636b38d08c5a9c61.zip
Remove CMakeLists.txt for doc
Move doc directory up a level from kdbg/doc Add macro call to source root CMakeLists.txt Remove tde_conditional_add_subdirectory() macro call for doc Signed-off-by: Ray-V <ray-v@inbox.lv> (cherry picked from commit ae6f04289851574f38aedbd4666f7154cc67cad3)
Diffstat (limited to 'doc/en')
-rw-r--r--doc/en/argspwdenv.html42
-rw-r--r--doc/en/breakptlist.html93
-rw-r--r--doc/en/globaloptions.html78
-rw-r--r--doc/en/howdoi.html76
-rw-r--r--doc/en/index.html185
-rw-r--r--doc/en/invocation.html34
-rw-r--r--doc/en/localvars.html28
-rw-r--r--doc/en/memory.html26
-rw-r--r--doc/en/pgmoutput.html46
-rw-r--r--doc/en/pgmsettings.html81
-rw-r--r--doc/en/registers.html35
-rw-r--r--doc/en/sourcecode.html28
-rw-r--r--doc/en/stack.html23
-rw-r--r--doc/en/threads.html42
-rw-r--r--doc/en/tips.html47
-rw-r--r--doc/en/types.html183
-rw-r--r--doc/en/watches.html28
-rw-r--r--doc/en/xslt.html24
18 files changed, 1099 insertions, 0 deletions
diff --git a/doc/en/argspwdenv.html b/doc/en/argspwdenv.html
new file mode 100644
index 0000000..22482f0
--- /dev/null
+++ b/doc/en/argspwdenv.html
@@ -0,0 +1,42 @@
+<!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 - Arguments, Environment</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+Specifying program arguments, working directory, environment variables</h1>
+<p>Choose <i>Execution|Arguments</i> to open a dialog where you can set program
+arguments, the working directory for your program, and environment variables.</p>
+<h2><a name="PgmArgs"></a>Tab Arguments</h2>
+<p>In the edit box enter the arguments that shall be passed on to your
+program. <i>Insert file name</i> lets you browse for a file;
+the file name will be <em>inserted</em> in the edit box (at the cursor position).</p>
+<p>Next time the program is started, the new arguments will be used.</p>
+<h2><a name="WorkingDir"></a>Tab Working Directory</h2>
+<p>In the edit box you can specify the working directory for your program.
+<i>Browse</i> lets you browse for a directory.
+Your program will use the new directory only when it is run the next time.</p>
+<p>The working directory also applies to gdb itself! The directory that
+you specify will be passed to gdb immediately, i.e. gdb will work with
+the new setting as soon as you press <i>OK</i>. This can influence whether
+source code files are found.</p>
+<h2><a name="Environment"></a>Tab Environment</h2>
+<p>In the Environment tab you can set environment variables that the program
+sees in addition to those that it inherits.
+In the edit box type in an expression of the form <tt>VARIABLE=value</tt>
+to set the environment variable <tt>VARIABLE</tt> to the value <tt>value</tt>,
+and click <i>Modify</i>. To remove a variable, select it from the list
+below and click <i>Delete</i>. To change the value, edit the value in the
+edit field and click <i>Modify</i>. If you change the name of the variable
+and click <i>Modify</i>, you add a new variable! The new environment variables
+will be used by your program the next time it is run.</p>
+<h2>Tab xsldbg Settings</h2>
+<p>This tab is only available when a <a href="xslt.html">XSLT script is
+debugged</a>. Here you can specify various flags that influence the
+XSL translation and XSLDBG.</p>
+</body>
+</html>
diff --git a/doc/en/breakptlist.html b/doc/en/breakptlist.html
new file mode 100644
index 0000000..fb1c18e
--- /dev/null
+++ b/doc/en/breakptlist.html
@@ -0,0 +1,93 @@
+<!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 - Breakpoint list</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Breakpoint List</h1>
+<p>The breakpoint list displays all breakpoints and watchpoints that are set
+and allows you to manipulate them. It can be displayed using <i>View|Breakpoints</i>.</p>
+<h2>
+The list of breakpoints</h2>
+<p>For each breakpoint the following is shown:</p>
+<ul>
+<li>
+the breakpoint location,</li>
+
+<li>
+the hit count,</li>
+
+<li>
+the ignore count if set,</li>
+
+<li>
+the condition if set.</li>
+</ul>
+<p>The icon in front of the entry indicates whether the breakpoint is enabled
+(a red dot) or disabled (a bright red dot), whether the breakpoint is temporary
+(a tiny clock is overlaid), whether the breakpoint is conditional (a
+tiny question mark is overlaid), or whether the breakpoint is <em>orphaned</em>
+(a 'x' is overlaid).</p>
+<p>Watchpoints are indicated by an eye glas icon in front of the line.</p>
+<h2>
+<A name="orphanedbp"></A>Orphaned breakpoints</h2>
+<p><em>Orphaned breakpoints</em> are breakpoints that gdb cannot implant
+immediately. Orphaned breakpoints occur if you try to set a breakpoint in a file
+that is not part of the executable. In particular, this is the case if the file
+belongs to a shared library or dynamically loaded module: When the executable
+is loaded, gdb does not yet know about dynamic modules and, hence, cannot set
+breakpoints there. However, KDbg does not forget about requests to set
+breakpoints in dynamic modules: It tries to set orphaned breakpoints each time
+that the program stops. When the breakpoint can be set successfully, it turns
+into a normal breakpoint.</p>
+<p>But there is an important consequence: Orphaned breakpoints are not effective,
+and the program will <em>not</em> stop there. The remedy is to set a breakpoint
+in the executable at the earliest possible point after which it is known that
+the dynamic module is loaded. For shared libraries this is usually in <tt>main()</tt>
+and for dynamically loaded modules it is after the call to <tt>dlopen()</tt>
+(or equivalent). When the program stops at this breakpoint the orphaned
+breakpoints from the dynamic module are set and become effective.</p>
+<h2>
+Manipulating breakpoints</h2>
+<p><a name="StopProg"></a>It is important to note that breakpoints and watchpoints
+cannot be manipulated while the program is running. If the program has
+already been started, it must stop first - either by hitting a breakpoint
+that is already set or forcefully by choosing <i>Execution|Break</i>. Note
+that this will not terminate the program, it just interrupts it. You can
+now manipulate the breakpoints; then choose <i>Execution|Continue</i> to
+let the program continue.</p>
+<p>To set a breakpoint on a specific source line, it is easiest to do this
+in the source code window. If you don't know the exact file and line number
+of a function, you can set the breakpoint by typing the function name in
+the edit box above the list and click <i>Add Breakpoint</i>.</p>
+<p>You can disable and enable breakpoints by selecting them in the list
+and clicking <i>Disable</i> or <i>Enable</i>. Or you simply click on the
+breakpoint in the list using the middle mouse button - just like you enable
+and disable breakpoints in the source window.</p>
+<p>You can set a condition on a breakpoint (so that the program is only
+stopped if the condition is true) or set an ignore count (so that the program
+is not stopped the next n times that the breakpoint is hit). To do that,
+press the <i>Conditional</i> button and enter the condition and/or ignore
+count.</p>
+<h2>
+Manipulating watchpoints</h2>
+<p>Watchpoints are a like breakpoints, except that they interrupt the program
+when the value of a memory location changes. As with breakpoints, watchpoints
+cannot be manipulated while the program is running. See <a href="#StopProg">above</a>
+for more information.</p>
+<p>To set a watchpoint, type an expression in the edit box above the list,
+then click <i>Add Watchpoint</i>. The program will stop when the value
+of the expression changes. Note that watchpoints that involve local variables
+can only be set when the program is stopped in a breakpoint (or has been
+interrupted by <i>Execution|Break</i>).</p>
+<p>To remove the watchpoint, select it from the list and click <i>Remove</i>.
+If the expression involves a local variable, the watchpoint will be removed
+automatically when the program leaves the current frame.</p>
+<p>You can set a condition and an ignore count on the watchpoint just like
+on breakpoints by selecting it and clicking <i>Conditional</i>.</p>
+</body>
+</html>
diff --git a/doc/en/globaloptions.html b/doc/en/globaloptions.html
new file mode 100644
index 0000000..52faaab
--- /dev/null
+++ b/doc/en/globaloptions.html
@@ -0,0 +1,78 @@
+<!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 - Global Options</title>
+</head>
+<body text="#000000" bgcolor="#ffffff">
+<p><a href="index.html">Contents</a></p>
+<h1>
+Global Options Dialog</h1>
+<p>To specify some global options, choose <i>Settings|Global Options</i>. You
+can set the following:</p>
+<ul>
+<li>
+the command by which gdb is invoked,</li>
+
+<li>
+the command that opens a terminal for the program's output,</li>
+
+<li>
+whether the KDbg shall pop into the foreground when the program stops and
+a timeout when it shall go back again,</li>
+
+<li>
+the tab width,</li>
+
+<li>
+filters for source file names.</li>
+</ul>
+
+<h4>
+How to invoke gdb</h4>
+
+<blockquote>If you want to use a different version of gdb, you can specify
+it under
+<i>How to invoke GDB</i>. The default command is <tt>gdb --fullname
+--nx</tt>. Be sure to also specify these options if you change the gdb
+executable. If you leave them away, KDbg will not work. If you messed up
+the entry, you can clear it to revert to the default setting.</blockquote>
+
+<h4>
+How to invoke a terminal emulator</h4>
+
+<blockquote>If you want to use a different terminal program to show the
+output of the program, specify it under <i>Terminal for program output</i>.
+The default setting is <tt>xterm -name kdbgio -title %T -e sh -c %C</tt>.
+In this entry,
+<tt>%T</tt> will be replaced by a title string, <tt>%C</tt>
+will be replaced by a Bourne shell script that loops infinitely so that
+the terminal window doesn't close. (No, it doesn't use CPU, it calls <tt>sleep
+3600</tt> in a loop :) An alternative for this setting could be <tt>konsole
+--name kdbgio --caption %T -e sh -c %C</tt>.</blockquote>
+
+<h4>
+Pop into foreground</h4>
+
+<blockquote>You can specify whether the KDbg window shall move itself into
+the foreground as soon as the program being debugged stops (at a breakpoint
+or due to a signal). The KDbg window is not activated, however (at least
+under KWM, the KDE window manager). Some users may feel that this behavior
+is intrusive, so this option is off by default.</blockquote>
+
+<blockquote>If this option is on, KDbg will also retreat itself into the
+background when the program is continued by any command, but it does so
+only after a timeout that can be specified. This avoids that the debugger
+window flashes back and forth each time you click any of the <i>Step</i>
+commands.</blockquote>
+
+<h4>
+File filters</h4>
+
+<blockquote>You can specify wildcards for source files and header files,
+which are used in the file dialog of the <i>File|Open Source</i>
+command.</blockquote>
+
+</body>
+</html>
diff --git a/doc/en/howdoi.html b/doc/en/howdoi.html
new file mode 100644
index 0000000..6191144
--- /dev/null
+++ b/doc/en/howdoi.html
@@ -0,0 +1,76 @@
+<!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 - How Do I...?</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+How Do I...?</h1>
+
+<h4>
+... set breakpoints?</h4>
+<p>There's more than one way to set a breakpoint:</p>
+<ul>
+<li>
+You can set it in the source window by clicking on the "active area" at
+the far left of the line.</li>
+
+<li>
+You can set it by selecting the line in the source window and choosing
+an option from the <i>Breakpoint</i> menu.</li>
+
+<li>
+You can set it in the <a href="breakptlist.html">breakpoint list</a>.</li>
+</ul>
+<p>If you can't set breakpoints, maybe the program is currently running. You
+can't set breakpoints while the program is running. Stop it first using
+<i>Execution|Break</i>.
+If you still can't set breakpoints, make sure that you have compiled <em>and
+linked</em> your program with debugging information enabled.</p>
+<h4>
+... display the value of a global variable or an arbitrary expression?</h4>
+<p>Use the <A href="watches.html">Watch window</A>.</p>
+<h4>
+... set watchpoints?</h4>
+<p>Watchpoints are manipulated in the <a href="breakptlist.html">breakpoint
+list</a>.</p>
+<h4>
+... use a core dump?</h4>
+<p>First load the executable using <i>File|Executable</i>, then specify the
+core dump using <i>File|Core dump</i>.</p>
+<h4>
+... debug a program that's caught in an endless loop?</h4>
+<p>Start the program and let it run until it is in the endless loop. Then
+switch to KDbg and choose <i>Execution|Break</i>. You've just caught the
+nasty program <em>in flagranti</em>!</p>
+<h4>
+... achieve that the program passes over a breakpoint a number of times
+before it stops?</h4>
+<p>In the <a href="breakptlist.html">breakpoint list</a> select the breakpoint;
+then click <i>Conditional</i> and specify the number of times to skip the
+breakpoint in the <i>Ignore count</i> field.</p>
+<h4>
+... set environment variables for the executable?</h4>
+<p>Select <i>Execution|Arguments</i> and specify the environment variables
+in the <a href="argspwdenv.html#Environment">program arguments dialog</a>.</p>
+<h4>
+... set a working directory for the executable?</h4>
+<p>Select <i>Execution|Arguments</i> and specify the working directory in
+the <a href="argspwdenv.html#WorkingDir">program arguments dialog</a>.</p>
+<h4>
+... get rid of this terminal window?</h4>
+<p>Select <i>Settings|This Program</i> and switch to the <a href="pgmsettings.html#output">Output</a> tab.
+Select <i>Only output, simple terminal emulation</i> and click <i>OK</i>.
+Now restart the program (choose it from the list under <i>File|Recent Executables</i>).
+The program output goes now to the built-in <a href="pgmoutput.html">output
+window</a> and stdin is redirected to <tt>/dev/null</tt>.</p>
+<p>You must do this for every new program that you debug.</p>
+<p><b><i>Important:</i></b> You should not do this if your program expects
+input from the terminal (usually stdin) or if its output requires nifty
+terminal emulation (more than carriage-return and line-feed). The built-in
+output window does not support input and terminal emulation.</p>
+</body>
+</html>
diff --git a/doc/en/index.html b/doc/en/index.html
new file mode 100644
index 0000000..454cd08
--- /dev/null
+++ b/doc/en/index.html
@@ -0,0 +1,185 @@
+<!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</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+
+<h1>
+KDbg - User's Manual</h1>
+
+<h2>
+Contents</h2>
+
+<ul>
+<li>
+<a href="#Introduction">Introduction</a></li>
+
+<li>
+<a href="#UsingKDbg">Using KDbg</a></li>
+
+<li>
+<a href="#InfoWindows">KDbg's information windows</a></li>
+
+<li>
+<a href="#Tips">Tips and such</a></li>
+
+<li>
+Advanced topic: <a href="types.html">Type tables</a></li>
+
+<li>
+<a href="invocation.html">How to invoke KDbg from the command line</a></li>
+
+<li>
+<a href="#Author">Author</a></li>
+</ul>
+
+<hr>
+<h2>
+<a name="Introduction"></a>Introduction</h2>
+<p>KDbg is a front-end for <tt>gdb</tt>, the GNU debugger.</p>
+<p>This means that KDbg itself is not the debugger. Rather, it communicates
+with <tt>gdb</tt>, a command line debugger, by sending commands to it and
+receiving the output, such as variable values. The menu commands and mouse
+clicks are translated into <tt>gdb</tt> commands, and the output of <tt>gdb</tt>
+is translated into (more or less) visible information, such as structured
+variable contents.</p>
+<p>The upshot of all this is that KDbg completely relies on the capabilities
+of the underlying command line debugger, <tt>gdb</tt>. KDbg can do no more
+than <tt>gdb</tt> can. For example, if you have a <tt>gdb</tt> that does
+not supports debugging of threaded programs, KDbg cannot, either (even
+though it offers a threads window).</p>
+<h2>
+<a name="UsingKDbg"></a>Using KDbg</h2>
+<p>Before you start using KDbg, you may want to review the options in the
+<a href="globaloptions.html">Global Options</a> dialog that you invoke
+with <i>Settings|Global Options</i>.</p>
+<h4>
+Specifying a debugging target</h4>
+<p>To debug a program, choose <i>File|Executable</i> from the menu. If you
+have debugged the program earlier, you can choose it from <i>File|Recent
+Executables</i>. The program is loaded.</p>
+<p>If you want to debug a core dump, you must first load the executable
+that produced the core dump, then choose
+<i>File|Core Dump</i> from the
+menu. Now KDbg goes to the point in the program that caused the core dump.</p>
+<p>You can now set breakpoints, using the <i>Breakpoint</i> menu, the right
+mouse button menu, or the <a href="breakptlist.html">breakpoint window</a>.</p>
+<p>You can also choose program specific settings that apply only to the
+currently loaded executable using <i>Settings|This Program</i>, in the
+<a href="pgmsettings.html">Program Settings</a> dialog.</p>
+<p>Furthermore, it is possible to <a href="xslt.html">debug XSLT scripts</a>.</p>
+<h4>
+Running the program</h4>
+<p>Now run the program by selecting <i>Execution|Run</i>. The program now
+executes as usual until it either exits, hits a breakpoint or watchpoint,
+or receives a signal.</p>
+<p>You can run the program with arguments, set a working directory, or
+set environment variables. To do this, choose <i>Execution|Arguments</i>
+and specify your options in the <a href="argspwdenv.html">Program Arguments</a>
+dialog (before you start the program).</p>
+<p>You can also attach to a program that is currently running. To do this,
+first load the executable file like above. Then choose <i>Execution|Attach</i>.
+From the list processes specify the one you want to attach to
+and click <i>OK</i>. The running program is
+halted (not terminated), and the current point of execution is displayed
+in the source window.</p>
+<p><font size="-1">On some systems the list of processes may not be available.
+In this case a simple edit box is available where the process number can be
+specified.</font></p>
+<h4>
+The program stopped - now what?</h4>
+<p>When the program stops at a breakpoint, watchpoint, or due to a signal,
+the <a href="sourcecode.html">source code window</a> displays the line
+where the program stopped. It is very common that the program stops due
+to a signal (usually a <tt>SIGSEGV</tt>, segmentation violation) in a function
+that is not part of the program, that you have written. In this case you
+investigate the <a href="stack.html">stack window</a> and look for a function
+that you have written (start at the top of the list) and click on it. This
+will bring you to a location that you can start your search for the real
+bug.</p>
+<p>In the menu <i>Execution</i> you find the commands that you need to
+run
+the program, step through code, and to interrupt the program (<i>Break</i>)
+while it is running. The important commands (<i>Run</i> and all kinds of
+<i>Step</i>) are bound to function keys. For efficient debugging it is
+strongly recommend that you get used to using them. You can use
+<i>Settings|Configure Shortcuts</i> if you want to bind the functions
+to different keys.</p>
+<p>In the menu <i>Breakpoint</i> you find commands to set, clear, disable,
+and enable permanent and temporary breakpoints. You can display a list
+of breakpoints in the <a href="breakptlist.html">breakpoints window</a>.
+You can also set a breakpoint by clicking at the left end of the source
+line (using the left mouse button), and you can enable and disable a breakpoint
+by clicking it using the middle mouse button.</p>
+<p>The animation in the toolbar indicates whether the program
+is running. It stops when the program stopped in a breakpoint or for
+some other reason or when the program exited. This animated button is a shortcut
+for <i>Execution|Break</i>.</p>
+<h2>
+<a name="InfoWindows"></a>KDbg's information windows</h2>
+<p>KDbg displays information and accepts commands in number of different windows.
+In the menu <i>View</i> you find commands to show and hide these windows.
+They are docking windows, which means that you can drag them around and
+arrange them in any manner you like.</p>
+<ul>
+<li>
+<a href="sourcecode.html">The source code window</a></li>
+
+<li>
+<a href="localvars.html">The local variables window</a></li>
+
+<li>
+<a href="stack.html">The stack window</a></li>
+
+<li>
+<a href="watches.html">The watched expressions window</a></li>
+
+<li>
+<a href="breakptlist.html">The breakpoint list</a></li>
+
+<li>
+<a href="pgmoutput.html">The output window</a></li>
+
+<li>
+<a href="registers.html">The register dump window</a></li>
+
+<li>
+<a href="memory.html">The memory dump window</a></li>
+
+<li>
+<a href="threads.html">The threads window</a></li>
+</ul>
+
+<h2>
+<a name="Tips"></a>Tips and such</h2>
+<p>The following topics give some useful hints on using KDbg.</p>
+<ul>
+<li>
+<a href="tips.html">Tips and Tricks</a></li>
+
+<li>
+<a href="howdoi.html">How do I...?</a></li>
+</ul>
+
+<h2>
+<a name="Author"></a>Author</h2>
+<p>KDbg is written by <a href="mailto:j6t@kdbg.org">Johannes Sixt</a>
+with contributions from these people (in no particular order):</p>
+<ul>
+<li>Keith Isdale</li>
+<li>Ben Burton</li>
+<li>Daniel Thor Kristjansson</li>
+<li>Matthew Allen</li>
+<li>Ron Lerech</li>
+<li>Neil Butterworth</li>
+<li>Thomas Sparr</li>
+<li>Max Judin</li>
+<li>Johnny Chan</li>
+<li>Ilmar S. Habibulin</li>
+</ul>
+<p>KDbg homepage is at <a href="http://www.kdbg.org/">http://www.kdbg.org/</a>.</p>
+</body>
+</html>
diff --git a/doc/en/invocation.html b/doc/en/invocation.html
new file mode 100644
index 0000000..2f99dd0
--- /dev/null
+++ b/doc/en/invocation.html
@@ -0,0 +1,34 @@
+<!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 - Invocation</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>Invoking KDbg from the command line</h1>
+<p><pre>
+Usage: kdbg [TQt-options] [KDE-options] [options] [program] [core]
+
+Generic options:
+ --help Show help about options
+ --help-qt Show TQt specific options
+ --help-kde Show KDE specific options
+ --help-all Show all options
+ --author Show author information
+ -v, --version Show version information
+ --license Show license information
+ -- End of options
+
+Options:
+ -t &lt;file&gt; transcript of conversation with the debugger
+ -r &lt;device&gt; remote debugging via &lt;device&gt;
+ -l &lt;language&gt; specify language: C, XSLT []
+ -p &lt;pid&gt; specify PID of process to debug
+
+Arguments:
+ program path of executable to debug
+ core a core file to use
+</pre></p></body>
+</html>
diff --git a/doc/en/localvars.html b/doc/en/localvars.html
new file mode 100644
index 0000000..1461f70
--- /dev/null
+++ b/doc/en/localvars.html
@@ -0,0 +1,28 @@
+<!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 - Local Variables</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Local Variables Window</h1>
+<p>The local variables window is opened using <i>View|Locals</i>. The local
+variables window displays the contents of the local variables at the currently
+selected stack frame.</p>
+<p>The set of local variables that are displayed is determined by the stack
+frame that is selected in the <A href="stack.html">stack window</A>.</p>
+<p>Variable values that changed between stops of the program are displayed
+in red color.</p>
+<p>The values of most variables can be changed. For this purpose, press F2
+while the input focus is in the window or choose <i>Edit value</i> from the
+context menu. Then edit the value and hit Enter. Note that you cannot modify
+the strings that <tt>char*</tt> values point to in this way, just the pointer
+value.</p>
+<p>Using the context menu you can move
+the active variable or structure member to the <a href="watches.html">watched
+expressions window</a>.</p>
+</body>
+</html>
diff --git a/doc/en/memory.html b/doc/en/memory.html
new file mode 100644
index 0000000..75693f9
--- /dev/null
+++ b/doc/en/memory.html
@@ -0,0 +1,26 @@
+<!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 - Memory Dump</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Memory Dump Window</h1>
+<p>The memory dump window is displayed using <i>View|Memory</i>. It displays
+the contents of the program's memory at arbitrary adresses.</p>
+<p>To display memory contents, enter an address in the edit field. The
+address need not be given in hexadecimal form - it can be an expression.</p>
+<p>You can specifiy a format how the memory contents shall be displayed
+by chooseing the appropriate options from the popup menu that you invoke
+by clicking the right mouse button.</p>
+<p>A number of address expressions are remembered. You can recall such
+an expression from the drop-down list. Please note that the address expression
+is remembered together with the format.</p>
+<p>If you don't need to investigate memory contents, it is recommended
+that you clear the expression so that no memory dump is displayed - this
+speeds up the debugging process.</p>
+</body>
+</html>
diff --git a/doc/en/pgmoutput.html b/doc/en/pgmoutput.html
new file mode 100644
index 0000000..3e18902
--- /dev/null
+++ b/doc/en/pgmoutput.html
@@ -0,0 +1,46 @@
+<!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 - Program Output</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Program Output Window</h1>
+<p>The program output window is displayed using <i>View|Output</i>. The output
+window captures text that is written to stdout and stderr by the program
+being debugged.</p>
+<p>The output window does not allow to type input for the program and it
+features only minimal terminal emulation: <tt>\n</tt> (line-feed),
+<tt>\t</tt> (horizontal tab), and <tt>\r</tt> (carriage-return)
+are treated. These capabilities are usually sufficient to debug GUI programs
+which only write debugging output to stdout and stderr.</p>
+<p>When a program is debugged with KDbg for the first time, the program
+output window is <em>not</em> used. The reason for this is that KDbg cannot
+know whether the program requires sophisticated terminal emulation or if
+it expects input through a terminal. So, a terminal emulator program is
+used by default. In order to redirect the output to the output window,
+you must do the following:</p>
+<ol>
+<li>
+Open the <a href="pgmsettings.html">Settings dialog</a> by selecting <i>Settings|This Program</i>.</li>
+
+<li>
+Switch to the <i>Output</i> tab.</li>
+
+<li>
+Choose <i>Only output, simple terminal emulation</i> and click <i>OK</i>.</li>
+
+<li>
+Reload the program by selecting it from the list in <i>File|Recent Executables</i>.</li>
+</ol>
+<p>You can clear the contents of the output window by selecting <i>Clear</i>
+from the popup menu that appears when you click the right mouse button.</p>
+<p>If the last line of the output is visible, the window always scrolls
+automatically so that the last line remains visible when new output arrives.
+If, however, you manually scroll up so that the last line is not visible,
+the visible portion of text will not change.</p>
+</body>
+</html>
diff --git a/doc/en/pgmsettings.html b/doc/en/pgmsettings.html
new file mode 100644
index 0000000..64225fb
--- /dev/null
+++ b/doc/en/pgmsettings.html
@@ -0,0 +1,81 @@
+<!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 - Program Settings</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Program Settings Dialog</h1>
+<p>In this dialog, program specific settings can be selected. It is invoked
+by <i>Settings|This Program</i>. The settings apply only to the currently loaded
+executable and will be saved across sessions.</p>
+<blockquote><b><i>Important note:</i></b> The chosen settings will only
+apply the next time the executable is loaded into KDbg. This means that
+after pressing
+<i>OK</i> in this dialog, you must reload the executable
+using <i>File|Recent Executables</i>!!</blockquote>
+
+<ul>
+<li>
+<a href="#driver">Debugger</a></li>
+
+<li>
+<a href="#output">Output</a></li>
+</ul>
+
+<h2>
+<a name="driver"></a>Debugger</h2>
+<p>In this section, the debugger to be used for the program can be chosen.</p>
+<h4>
+How to invoke GDB</h4>
+
+<blockquote>Enter the command to invoke gdb. Leave this field empty to
+use the default gdb command as specified in the <a href="globaloptions.html">global
+options</a>. When you are cross-compiling and remote-debugging, you will
+probably want to use a different gdb suitable for the target platform.
+The default command is <tt>gdb --fullname --nx</tt>. Be sure to specify
+at least <tt>--fullname</tt> if you change the gdb command.
+If you remove this command switch, KDbg will not work.
+</blockquote>
+
+<h2>
+<a name="output"></a>Output</h2>
+<p>In this section, the terminal emulation under which the program will run
+can be selected.</p>
+<h4>
+No input and output</h4>
+
+<blockquote>Check this option if your program does not receive input from
+the terminal and you do not want to see the output that the program writes
+to <tt>stdout</tt> and <tt>stderr</tt> (if any). All three standard channels
+(<tt>stdin</tt>, <tt>stdout</tt>, and <tt>stderr</tt>) are effectively
+redirected to <tt>/dev/null</tt>.</blockquote>
+
+<h4>
+Only output, simple terminal emulation</h4>
+
+<blockquote>Check this option if your program does not receive input from
+the terminal (<tt>stdin</tt> will be redirected to <tt>/dev/null</tt>),
+and the output that it writes to <tt>stdout</tt> and <tt>stderr</tt> does
+not require sophisticated terminal emulation. The output will be shown
+in the <a href="pgmoutput.html">Output window</a>.
+<br><i>Important:</i> The integrated terminal emulator will only interpret
+the line-feed character <tt>\n</tt> (ASCII 10) to break lines. It will
+<em>not</em>
+handle the carriage-return character <tt>\r</tt> (ASCII 13). This is sufficient
+for displaying plain debugging output that is often used by developers
+of GUI programs.</blockquote>
+
+<h4>
+Full terminal emulation</h4>
+
+<blockquote>Check this option if your program reads input from <tt>stdin</tt>
+or if the output to <tt>stdout</tt> or <tt>stderr</tt> requires terminal
+emulation. A terminal emulator will be invoked as specified in the <a href="globaloptions.html">global
+options</a>.</blockquote>
+
+</body>
+</html>
diff --git a/doc/en/registers.html b/doc/en/registers.html
new file mode 100644
index 0000000..fc9fb5b
--- /dev/null
+++ b/doc/en/registers.html
@@ -0,0 +1,35 @@
+<!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 - Register Dump</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Register Dump Window</h1>
+<p>Whenever the program stops, KDbg displays the contents of the CPU registers
+in the register dump window. To display this window, choose <i>View|Registers</i>.</p>
+<p>The registers are grouped by the kind of register. The window contains 3 columns:</p>
+<ol>
+<li>
+The column <i>Register</i> displays the register name.</li>
+
+<li>
+The column <i>Value</i> displays the contents of the registers in a more
+or less raw form. The raw form is usually displayed as hexadecimal numbers,
+even the contents of floating point registers.</li>
+
+<li>
+The column <i>Decoded value</i> displays the contents of the registers
+in a decoded form. For arithmetic registers this is generally a signed
+decimal value, floating point registers are displayed as floating point
+numbers, the flag registers are sometimes decoded into named flags.</li>
+</ol>
+<p>By clicking the right mouse button a context menu is popped up which lets
+you select how the value in the third column is displayed.
+You can change the type to use for all registers of a group at once if you
+choose the format for the group header.</p>
+</body>
+</html>
diff --git a/doc/en/sourcecode.html b/doc/en/sourcecode.html
new file mode 100644
index 0000000..9d1bb7f
--- /dev/null
+++ b/doc/en/sourcecode.html
@@ -0,0 +1,28 @@
+<!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 - Source Code</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Source Code Window</h1>
+<p>The source code window is the main window and is always visible.</p>
+<p>The source code window displays program source code. At the left of
+each source line is an "active area". It displays a pointer to indicate
+which source line the program currently executes, and it indicates on which
+source lines breakpoints have been set.</p>
+<p>New breakpoints can be set by clicking into the active area with the
+left mouse button. An existing breakpoint can be enabled and disabled by
+clicking with the middle mouse button.</p>
+<p>The tiny plus '+' between the "active area" and the source line can
+be clicked on. If you do so, the source line's assembler code will be displayed.
+The plus turns into a minus '-', which, if clicked, will hide the disassembled
+code.</p>
+<p>Mostly, source code windows are opened automatically. To open a new
+source file manually, click the right mouse button and choose <i>Open Source</i>
+or choose <i>File|Open Source</i>.</p>
+</body>
+</html>
diff --git a/doc/en/stack.html b/doc/en/stack.html
new file mode 100644
index 0000000..0db570b
--- /dev/null
+++ b/doc/en/stack.html
@@ -0,0 +1,23 @@
+<!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 - Stack</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Stack Window</h1>
+<p>The stack window is displayed using <i>View|Stack</i>. The stack window
+lists the stack frames, i.e. the functions that the program has entered,
+but not yet left.</p>
+<p>The innermost frame (where the program currently executes) is shown
+at the top.</p>
+<p>To switch to a different stack frame, simply click on that stack frame.
+The <a href="sourcecode.html">source window</a> displays the source line
+where the function invocation took place and the <a href="localvars.html">local
+variables window</a> and the <a href="watches.html">watch window</a> change
+to reflect the local variables of the selected stack frame.</p>
+</body>
+</html>
diff --git a/doc/en/threads.html b/doc/en/threads.html
new file mode 100644
index 0000000..3f0d7fb
--- /dev/null
+++ b/doc/en/threads.html
@@ -0,0 +1,42 @@
+<!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 - Threads</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Threads Window</h1>
+<p>The threads window is displayed using <i>View|Threads</i>. The threads
+window lists the active threads of the program.</p>
+<p><b><i>Note:</i></b> Debugging threaded programs must be supported by
+the version of gdb that is used - it is not a feature of KDbg. For Linux
+systems this works best with gdb5 and later. However, at the time of this writing gdb
+still poorly supports threads on NPTL- (New Posix Threads Library) enabled
+systems (glibc 2.3.x and kernel 2.6.x).</p>
+<p>The contents of the threads window are updated every time the program
+is stopped by the debugger. (That is, the window does <em>not</em> reflect
+the state while the program is running.)</p>
+<p>The first column shows the thread ID, the second column identifies the
+location where the thread currently executes.</p>
+<p>The marker in front of the line tells which thread currently is <em>active</em>:</p>
+<ul>
+<li>
+The <a href="stack.html">stack window</a> displays the active threads's
+backtrace.</li>
+
+<li>
+The <a href="localvars.html">local variables</a> window displays the active
+thread's local variables.</li>
+
+<li>
+The <a href="watches.html">watch window</a> uses the active thread's local
+variables to evaluate the expressions.</li>
+</ul>
+<p>By clicking a listed thread, the active thread is switched, and the corresponding
+windows are updated. In particular, the <a href="sourcecode.html">source
+window</a> displays the location where the active thread is currently halted.</p>
+</body>
+</html>
diff --git a/doc/en/tips.html b/doc/en/tips.html
new file mode 100644
index 0000000..6a0292a
--- /dev/null
+++ b/doc/en/tips.html
@@ -0,0 +1,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>
diff --git a/doc/en/types.html b/doc/en/types.html
new file mode 100644
index 0000000..2538efe
--- /dev/null
+++ b/doc/en/types.html
@@ -0,0 +1,183 @@
+<!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 - Type Tables</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+KDbg's Type Table</h1>
+<p>KDbg can display a short description of structured types, so
+that it is not necessary to expand the variable in the <a href="localvars.html">local
+variables window</a> or <a href="watches.html">watched expressions window</a>.
+The information which member variable is displayed is stored in <em>type
+tables</em>. There is generally one type table per shared library.</p>
+
+<p>KDbg's default type tables are located under <tt>$prefix/share/apps/kdbg/types</tt>.
+User defined type tables can be placed in <tt>${TDEHOME}/share/apps/kdbg/types</tt>, where
+<tt>${TDEHOME}</tt> is <tt>~/.kde</tt> if it is not a defined environment variable.
+The file names end with <tt>.kdbgtt</tt>. Example: The type table for <tt>libqt.so</tt>
+is named <tt>qt.kdbgtt</tt>.
+User defined type tables override the type tables provided by the system.</p>
+<p>A type table file obeys the regular KDE configuration file syntax. The
+file has the following groups:</p>
+<ul>
+<li>
+A group <tt>[Type Table]</tt> which lists the types and information how
+the debugger can identify whether the program is linked against the library.</li>
+
+<li>
+A group for each type which has information about how the value of such
+a type is displayed by KDbg.</li>
+</ul>
+<p>In order to determine which type tables apply to the program being debugged
+KDbg lists the shared libraries it is linked to. Then it matches the names
+against the <tt>ShlibRE</tt> entries of all type tables. Those that match
+are used. If a type appears in several type tables, it is unspecified which
+one will be used.</p>
+<p>KDbg's type recognition only works for libraries that are linked dynamically
+to the program being debugged.</p>
+<h2>
+The <tt>[Type Table]</tt> group</h2>
+<p>This group contains the following entries:</p>
+<ul>
+<li>
+<tt>Types1</tt>, <tt>Types2</tt>, etc. These entries name the types,
+separated by commas.
+Each of the entries can list any number of types. The entries must be numbered
+consecutively (KDbg stops reading at the first gap), although an entry may be
+empty (i.e. contain no type at all).
+Sometimes the order in which the names are listed is important
+(see <tt>Alias</tt> types below).</li>
+
+<li>
+<tt>ShlibRE</tt>. KDbg uses this entry to determine if the type table applies
+to the program being debugged. For this purpose KDbg determines the shared
+libraries to which the program is linked. If any of the libraries matches
+this entry, the type table applies. The regular expression is a TQt-regular
+expression (the metacharacters <tt>.*?[]^$\</tt> are recognized in the
+usual way, but there is no possibility to group characters.)</li>
+
+<li>
+<tt>LibDisplayName</tt>. This entry is used in lists where the available
+type tables are listed to identify this type table.
+
+<br><font size=-1>This is not used currently.</font></li>
+
+<li>
+<tt>EnableBuiltin</tt> lists extensions that must be enabled if this
+library is used. Currently, two builtins are supported:
+<ul>
+<li>
+<tt>TQString::Data</tt> is used to display unicode strings of TQt's <tt>TQString</tt>
+class. See below.</li>
+<li><tt>TQCharIsShort</tt> is used only in connection with <tt>TQString::Data</tt>
+to specify that a unicode character is stored in an object of type <tt>short</tt>.
+See <tt>qt3.kdbgtt</tt> for examples.</li></ul></li>
+</ul>
+
+<p>In the case of regular types the names of types should follow the output of the
+<tt>whatis</tt> gdb command less any <tt>const</tt>, <i>spaces</i>, or trailing
+<tt>&</tt>.
+If the type contains a a comma in its name, it must be escaped with a backslash.
+But note that the comma should not be escaped in the type's group (which is described
+in the next section).
+</p>
+<p>In the case of template types the name can be arbitrary because the type's group
+will mention the template name and a type parameter list.</p>
+
+<h2>
+The type's group</h2>
+<p>There is one group for each type that is named exactly as the type. <font size=-1>At
+the moment C++ template classes are not supported.</font> Each group contains
+the following entries:</p>
+<ul>
+<li>An optional <tt>Template</tt> entry that specifies the exact template type
+name as it is reported by gdb's <tt>whatis</tt> command. However, it is
+possible to replace template parameter types at the top-most level by an
+asterisk&nbsp;<tt>*</tt>, which acts as a wildcard: It matches <b>one</b>
+template type argument that is reported by <tt>whatis</tt> (except that an
+asterisk in the last position matches all remaining template type arguments).
+</li>
+<li>
+<tt>Display</tt> determines how the value of the type is displayed by KDbg.
+The string must contain 1 to 5 percent characters '<tt>%</tt>'. These are
+replaced by the results of the expressions printed by the <tt>Expr</tt><i>x</i>
+entries.</li>
+
+<li>
+One or more of <tt>Expr1</tt>, <tt>Expr2</tt>, etc. Each of them must contain
+one or more <tt>%s</tt> sequence, which will be replaced by the expression
+whose value is investigated. The so constructed expression is submitted
+to gdb, and the result substituted back for the corresponding percent character
+in the <tt>Display</tt> string.</li>
+
+<li>
+An optional <tt>FunctionGuard</tt><i>x</i> that is associated with the corresponding <tt>Expr</tt><i>x</i>.
+If the evaluation of the resulting gdb expression returns an error, the corresponding expression from <tt>Expr</tt><i>x</i> is not evaluated. (This is used to guard function calls.)
+<li>
+<tt>Alias</tt> names an alias type. If this entry is present, the type
+is treated like the specified type. That alias type must appear before
+this type in the <tt>Types</tt><i>x</i> entries in the <tt>Type Table</tt>.</li>
+</ul>
+<p><font size=-1>Currently the number of expressions per type is limited to
+5. This can easily be changed if it's too restrictive, but I recommend
+not to go to that limit at all - it will slow down the debugging process.</font></p>
+<p>KDbg recognizes a special extension that is used to display TQt 2.x's and TQt 3.x's
+unicode strings: If an <tt>Expr</tt><i>x</i> is prepended with <tt>/TQString::Data</tt>,
+it is assumed that the result of the expression is a pointer to a <tt>TQString::Data</tt>.
+The value displayed is the unicode string that this instance of <tt>TQString::Data</tt>
+represents (which can be <tt>TQString::null</tt> if it is TQt's well-defined
+null string or <tt>(null)</tt> if the <tt>unicode</tt> member is the null
+pointer). See <tt>qt2.kdbgtt</tt> for examples.</p>
+<p>Tip: It is not necessary to define derived types if they ought to be
+treated the same as the base class - KDbg can deduce derived types and
+uses the type specification of the (leftmost) base class. You can use the
+<tt>Alias</tt>
+entry to quickly specify that a type should be treated like a non-leftmost
+base class for a multiple-inheritance class.</p>
+<h2>
+An example</h2>
+<p>The example shows how <tt>TQString</tt> and <tt>TQRect</tt> are defined
+in <tt>qt3.kdbgtt</tt>. Furthermore, the template type <tt>TQValueVector</tt>
+is defined. This example applies to TQt 3.x, which is located in shared library
+whose name ends in <tt>libtqt-mt.so.3</tt>.</p>
+<pre>[Type Table]
+Types1=TQString,TQRect
+Types2=TQValueVector
+LibDisplayName=libqt 3.x
+ShlibRE=libtqt-mt\.so\.3$
+EnableBuiltin=TQString::Data,TQCharIsShort
+
+[TQString]
+Display={ % }
+Expr1=/TQString::Data (%s).d
+
+[TQValueVector]
+Template=TQValueVector<*>
+Display={ size=% shared=% capacity=% }
+Expr1=($tmp=(%s).sh)->finish-$tmp->start
+Expr2=(%s).sh->count
+Expr3=($tmp=(%s).sh)->end-$tmp->start
+
+[TQRect]
+Display={ tl=(%,%) br=(%,%) }
+Expr1=(%s).x1
+Expr2=(%s).y1
+Expr3=(%s).x2
+Expr4=(%s).y2</pre>
+<p>This example shows these features:</p>
+<ul>
+<li>The name of the template type, <tt>TQValueVector</tt> is irrelevant.
+The exact type name is specified under the <tt>Template=</tt> entry.
+It specifies a single wildcard so that it applies to all specializations.
+</li>
+<li>In order to evaluate the expression that was supplied in the <tt>%s</tt>
+only once, the result is stored in a temporary gdb variable and reused later in
+the same expression.</li>
+<li>Note that it is safer to wrap the <tt>%s</tt> in parentheses.</li>
+</ul>
+</body>
+</html>
diff --git a/doc/en/watches.html b/doc/en/watches.html
new file mode 100644
index 0000000..395cc61
--- /dev/null
+++ b/doc/en/watches.html
@@ -0,0 +1,28 @@
+<!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 - Watched Expressions</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>
+The Watched Expressions Window</h1>
+<p>The watched expressions window is opened using <i>View|Watched Expressions</i>.
+It displays arbitrary expressions.</p>
+<p>To add an expression, type it into the edit field and press Enter or
+click <i>Add</i>. To remove an expression, click on it (choose the root
+of the expression) and click <i>Del</i>.</p>
+<p>You can also move a variable or structure member from the <a href="localvars.html">local
+variables window</a> to this window using the context menu in the local
+variables window.</p>
+<p>The values of most expressions can be changed. For this purpose, press F2
+while the input focus is in the window. Then edit the value and hit Enter.
+Note that you cannot modify the strings that <tt>char*</tt> values point
+to in this way, just the pointer value.</p>
+<p>Watched expressions are stored across debugging sessions. It is recommended
+that you remove expressions that your don't need any longer because that
+speeds up the debugging process.</p>
+</body>
+</html>
diff --git a/doc/en/xslt.html b/doc/en/xslt.html
new file mode 100644
index 0000000..fdc5ec3
--- /dev/null
+++ b/doc/en/xslt.html
@@ -0,0 +1,24 @@
+<!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 - Debugging XSLT scripts</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<p><a href="index.html">Contents</a></p>
+<h1>Debugging XSLT scripts</h1>
+<p>KDbg allows to debug XSLT (XML stylesheet translation) scripts using
+<a href="http://xsldbg.sourceforge.net/">xsldbg</a>, which must be available
+on your system.</p>
+<h2>Specifying the script and an XML file to transform</h2>
+<p>XSLT mode is automatically entered if a &quot;program&quot; is loaded
+that has a file name that ends in <tt>.xsl</tt>. In addition, the
+<A href="invocation.html">command line option</A> <tt>-l XSL</tt> can be
+specified to explicitly choose this mode.</p>
+<p>To debug an XSLT script it is necessary to specify an XML data file
+that the script can transform. This is done in the
+<a href="argspwdenv.html">Program Arguments</a> dialog, where the XML
+file is specified in the <em>Program Arguments</em> edit box.</p>
+</body>
+</html>