From ae6f04289851574f38aedbd4666f7154cc67cad3 Mon Sep 17 00:00:00 2001 From: Ray-V Date: Sun, 13 Jun 2021 21:47:32 +0100 Subject: 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 --- doc/en/breakptlist.html | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 doc/en/breakptlist.html (limited to 'doc/en/breakptlist.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 @@ + + + + + + KDbg - User's Manual - Breakpoint list + + +

Contents

+

+The Breakpoint List

+

The breakpoint list displays all breakpoints and watchpoints that are set +and allows you to manipulate them. It can be displayed using View|Breakpoints.

+

+The list of breakpoints

+

For each breakpoint the following is shown:

+ +

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 orphaned +(a 'x' is overlaid).

+

Watchpoints are indicated by an eye glas icon in front of the line.

+

+Orphaned breakpoints

+

Orphaned breakpoints 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.

+

But there is an important consequence: Orphaned breakpoints are not effective, +and the program will not 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 main() +and for dynamically loaded modules it is after the call to dlopen() +(or equivalent). When the program stops at this breakpoint the orphaned +breakpoints from the dynamic module are set and become effective.

+

+Manipulating breakpoints

+

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 Execution|Break. Note +that this will not terminate the program, it just interrupts it. You can +now manipulate the breakpoints; then choose Execution|Continue to +let the program continue.

+

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 Add Breakpoint.

+

You can disable and enable breakpoints by selecting them in the list +and clicking Disable or Enable. 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.

+

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 Conditional button and enter the condition and/or ignore +count.

+

+Manipulating watchpoints

+

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 above +for more information.

+

To set a watchpoint, type an expression in the edit box above the list, +then click Add Watchpoint. 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 Execution|Break).

+

To remove the watchpoint, select it from the list and click Remove. +If the expression involves a local variable, the watchpoint will be removed +automatically when the program leaves the current frame.

+

You can set a condition and an ignore count on the watchpoint just like +on breakpoints by selecting it and clicking Conditional.

+ + -- cgit v1.2.1