anjuta r3586 - in trunk: . manuals/anjuta-manual/C



Author: sgranjoux
Date: Sun Feb  3 14:54:20 2008
New Revision: 3586
URL: http://svn.gnome.org/viewvc/anjuta?rev=3586&view=rev

Log:
	* manuals/anjuta-manual/C/debugger.xml:
	Update debugger documentation


Modified:
   trunk/ChangeLog
   trunk/manuals/anjuta-manual/C/debugger.xml

Modified: trunk/manuals/anjuta-manual/C/debugger.xml
==============================================================================
--- trunk/manuals/anjuta-manual/C/debugger.xml	(original)
+++ trunk/manuals/anjuta-manual/C/debugger.xml	Sun Feb  3 14:54:20 2008
@@ -29,12 +29,12 @@
    views of information needed to study the execution of the program.
   </para>
 
-  <note>
+  <tip>
    <para>
     The debugger has been heavily changed since anjuta 2.0.2. Some features have
-    been dropped but will be reenabled, a few have been added.
+    been dropped but will be re enabled, a few have been added.
    </para>
-  </note>
+  </tip>
 
  <!-- Debugger: Start and stop -->
 
@@ -42,7 +42,7 @@
   <title>Start and stop</title>
 
   <para>
-   There are two ways to start the debugger:
+   The debugger is always started with a program loaded. There are two ways to do this:
    <itemizedlist>
     <listitem><para><emphasis>Running an executable</emphasis></para></listitem>
     <listitem><para><emphasis>Attaching to a process</emphasis></para></listitem>
@@ -54,28 +54,38 @@
    <para>
     Choose the menu item
     <menuchoice><guisubmenu>Debug</guisubmenu><guimenuitem>Run Target&hellip;</guimenuitem></menuchoice>
-    to display a dialog box where you can select
-    the executable that you want to debug, the command line parameters
-    and if you want a terminal or not. The popup menu of the target combo box
-    is already filled with all executables of the current project, so you can easily
-    select one of them. But it is not mandatory, you can select any other executable.
-    The debugger accepts libtool executable, I mean script wrapping the real
-    executable generated by libtool. When you have set everything you can click on
-    <guibutton>Execute</guibutton>
-    to start the debugger, load your program and stop at its beginning.
+    to display a dialog box where you can select:
+    <itemizedlist>
+     <listitem>The program that you want to debug</listitem>
+     <listitem>The command line parameters</listitem>
+     <listitem>If you want a terminal or not (the Anjuta terminal plugin is used)</listitem>
+     <listitem>If you want to stop the program at the beginning or not</listitem>
+    </itemizedlist>
+   </para>
+   <para>
+    The drop-down menu of the target drop-down combination box 
+    is already filled with all executables of the current project. But you
+    can select another executable not part of the project. The debugger accepts libtool
+    executable, it means script,generated by libtool, wrapping the real executable.
+    Note that an URI is expected here, not a file path even if the debugger currently
+    supports only local files.
    </para>
-   <tip>
+   <para>
+    When you have set everything you can click on <guibutton>Execute</guibutton>
+    to start the debugger, load your program and stop at its beginning if requested.
+   </para>
+   <note>
     <para>
-     In order to better user the debugger, it is recommended to debug program
+     In order to better user the debugger, it is strongly recommended to debug program
      with debugging information (-g for gcc) and no optimization (-O0 for gcc).
     </para>
-   </tip>
+   </note>
   </sect2>
 	
   <sect2 id="debug-attach">
   <title>Attaching to a Process</title>
    <para>
-    It is also possible to attach to a running process for debugging. Choose the menu item
+    It is also possible to attach to a running process and debugging it by choosing the menu item
     <menuchoice><guisubmenu>Debug</guisubmenu>
 	<guimenuitem>Attach to Process &hellip;</guimenuitem></menuchoice>. A list of all the
     process running on the system will appear. 
@@ -88,12 +98,13 @@
     </screenshot>
    </figure>
    <para>	
-    Select the process to attach to and click <guibutton>OK</guibutton>.
+    Select the process to attach to and click <guibutton>OK</guibutton> to start the debugger,
+    attach to the selected process and stop it.
    </para>
    <note>
     <para>
-     It is currently not possible to load symbol information for the attached
-     process. 
+     It is currently not possible to load symbol informations for the attached
+     process. They should be included in the process.
     </para>
    </note>
   </sect2>
@@ -101,11 +112,11 @@
   <sect2 id="debug-restart">
    <title>Restarting an executable</title>
    <para>
-    After running a executable at least one time, you can
+    After running an executable at least one time, you can
     choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
     <guimenuitem>Restart Target</guimenuitem></menuchoice> to restart your program.
     It is just a shortcut that will stop the debugger if it is currently running
-    and restart it with the last executable. 
+    and restart it with the last executable without displaying the start dialog.
    </para>
   </sect2>
 
@@ -120,6 +131,24 @@
    </para>
   </sect2>
 
+  <sect2 id="debug-add-sources">
+   <title>Adding source directories</title>
+   <para>
+    Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
+    <guimenuitem>Add source paths&hellip;</guimenuitem></menuchoice> to display a dialog
+    box allowing you to add and remove source directories.
+   </para>
+   <para>
+    Most executables include full file paths, so defining the directories where are the source files
+    is not useful. But some executables include only file names without paths, in this case,
+    the source files will be searched in all these directories by the debugger.
+    The directories order can be important if several files have the same name, so
+    you can change it using the <guibutton>Up</guibutton> and <guibutton>Down</guibutton>  buttons.
+    The directories list is send to the debugger when it is started. After changing it,
+    you need to restart the debugger to take it in account.
+   </para>
+  </sect2>
+
  </sect1>
  
  <!-- Debugger: Execution -->
@@ -129,18 +158,25 @@
   <para>
    Execution of a program in the debugger can be finely controlled. The program can be 
    executed in single steps, or allowed to continue until it encounters a breakpoint. 
-   Executing like this is essential for tracking program behaviour. Like a video editing 
+   Executing like this is essential for tracking program behavior. Like a video editing 
    session, the program can be executed in <emphasis>slow motion</emphasis>
-   with the ability to go forward, pause, stop, and so on.
+   with the ability to go forward, pause, stop, and so on. You cannot go backward yet though.
   </para>
   <para>
-   The methods that can be used to execute a program in the debugger are described in 
-   the next few sections.
+   The methods those can be used to execute a program in the debugger are described in 
+   the next sections. These commands are available only when the program is already
+   started.
   </para>
   
   <sect2 id="dbg-step-in">
    <title>Single stepping (step in)</title>
    <para>
+    Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
+    <guimenuitem>Step In</guimenuitem></menuchoice>
+    or click on the <guibutton>Step In</guibutton> icon in the 
+	<interface>Debug toolbar</interface> to step into a program.
+   </para>
+   <para>
     Single stepping executes only one statement of the program (from the place where it 
 	has stopped) and then returns control. If the statement that is executed contains one 
 	or more functions, the debugger tries to step inside the functions (in the sequence in 
@@ -148,28 +184,28 @@
     control is passed back, it is possible to study the various program parameters.
    </para>
    <para>
-    If the program need to been started to use single stepping.
-   </para>
-   <para>
-    Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
-    <guimenuitem>Step In</guimenuitem></menuchoice>
-    or click on the <guibutton>Step In</guibutton> icon in the 
-	<interface>Debug toolbar</interface> to step into a program.
+    If the <interface>Disassembly window</interface> has the focus when this command is selected,
+    it executes only one assembler instruction.
    </para>
   </sect2>
 
   <sect2 id="dbg-step-over">
    <title>Single stepping (step over)</title>
    <para>
+    Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
+    <guimenuitem>Step Over</guimenuitem></menuchoice>
+    or click on the <guibutton>Step Over</guibutton> icon in the 
+	<interface>Debug toolbar</interface> to step over statements in a program.
+   </para>
+   <para>
     <emphasis>Step over</emphasis> is similar to <emphasis>step in</emphasis>,
     except that it does not step inside any function in the statement being executed.
     The statement will be executed in one go.
    </para>
    <para>
-    Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
-    <guimenuitem>Step Over</guimenuitem></menuchoice>
-    or click on the <guibutton>Step Over</guibutton> icon in the 
-	<interface>Debug toolbar</interface> to step over statements in a program.
+    If the <interface>Disassembly window</interface> has the focus when this command is selected,
+    it executes one assembler instruction but does not stop inside if this instruction is a call
+    to a subroutine. 
    </para>
    <note>
     <para>
@@ -183,46 +219,47 @@
   <sect2 id="dbg-step-out">
    <title>Single stepping (step out)</title>
    <para>
+    Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
+    <guimenuitem>Step Out</guimenuitem></menuchoice>
+    or click on the <guibutton>Step Out</guibutton> icon in the 
+	<interface>Debug toolbar</interface> to step out in a program.
+   </para>
+   <para>
     <emphasis>Step out</emphasis> will execute the current function until it 
 	returns. The program will be stopped once it exits from the function. 
 	Step out is not really single stepping, because it does not only execute 
 	a single statement &mdash; it executes the whole function until that 
 	function returns to the calling function.
    </para>
-   <para>
-    Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
-    <guimenuitem>Step Out</guimenuitem></menuchoice>
-    or click on the <guibutton>Step Out</guibutton> icon in the 
-	<interface>Debug toolbar</interface> to step out in a program.
-   </para>
   </sect2>
   
   <sect2 id="dbg-run">
    <title>Run/Continue</title>
    <para>
-    This option will continue the execution of the program until a breakpoint is 
-	encountered, or the program exits.
-   </para>
-   <para>
     Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
     <guimenuitem>Run/Continue</guimenuitem></menuchoice>
     or click on the <guibutton>Run/Continue</guibutton> icon in the 
 	<interface>Debug toolbar</interface> to continue the execution of a program.
     </para>
+   <para>
+    This option continues the execution of the program until a breakpoint is 
+	encountered, or the program exits.
+   </para>
   </sect2>
 
   <sect2 id="dbg-runto">
    <title>Run To</title>
    <para>
-    This option will continue the execution of the program until the line where
-    cursor is is reached. 
-   </para>
-   <para>
     Choose the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
     <guimenuitem>Run to Cursor</guimenuitem></menuchoice>
     or click on the <guibutton>Run to Cursor</guibutton> icon in the 
 	<interface>Debug toolbar</interface> to run until the line at cursor is reached.
-    </para>
+   </para>
+   <para>
+    This option continues the execution of the program until the line or the
+    address (if the <interface>Disassembly window</interface> has the focus) where
+    the cursor is is reached. 
+   </para>
   </sect2>
   
   <sect2 id="dbg-stop">
@@ -247,7 +284,7 @@
    When debugging a program, it is useful to be able to stop the execution of the program at
    a particular point, so that the state of the program can be examined at that location. 
    Breakpoints enable this to happen. Breakpoints can be set at different locations in a 
-   source file, and then the program is allowed to run. When a breakpoint is encountered, 
+   source file and then the program is allowed to run. When a breakpoint is encountered, 
    the execution of the program is suspended, enabling expressions to be evaluated, 
    variables to be inspected, the stack trace to be studied, and so on.
   </para>
@@ -269,71 +306,78 @@
     </figure>
    </para>
    <para>
-    <emphasis>Location</emphasis>, refers to the location of the code in the source
-    file. <emphasis>Location</emphasis> can be specified in any of the following 
-    formats:
-   </para>
-   <para>
-    <orderedlist>
-     <listitem><para>File_name:Line_number</para></listitem>
-     <listitem><para>Function_name</para></listitem>
-     <listitem><para>File:Function_name</para></listitem>
-    </orderedlist>
-   </para>
-   <para>
-    The first one is obvious &mdash; The location refers to the line number 
-    <emphasis>Line_number</emphasis> in the source file <emphasis>File</emphasis>. 
-    The second refers to the first line of the function 
-    <emphasis>Function_name</emphasis>. The third is similar to the second, except that 
-    this notation is used where there is more than one function with the name 
-    <emphasis>Function_name</emphasis> in the program. It is possible to 
-    differentiate between them by providing the <emphasis>File</emphasis>, so the 
-    notation refers to the function <emphasis>Function_name</emphasis> in the 
-    file <emphasis>File</emphasis>.
-   </para>
-   <para>
-    Two parameters can be associated with each breakpoint:
-    <orderedlist>
-     <listitem><para>Break condition</para></listitem>
-     <listitem><para>Pass count</para></listitem>
-    </orderedlist>
-   </para>
-   <para>
-    The <emphasis>Break condition</emphasis> is a valid C 
-    expression which should evaluate to a Boolean value &mdash; that is, the 
-    evaluation of the expression should result in either TRUE(1) or FALSE(0). 
-    If the final evaluation value is not a Boolean value, then it will be 
-    appropriately type casted to a Boolean.
-   </para>
-   <para>
-    Every time the breakpoint is encountered during the execution, the break 
-    condition will be evaluated. The debugger will break the execution only if 
-    the evaluation results in a TRUE value, otherwise it will continue the 
-    execution as though there had been no breakpoint.
-   </para>
-   <para>
-    The default value of <emphasis>Break condition</emphasis> is always TRUE. 
-    The debugger will break the execution at the breakpoint location.
-   </para>
-   <para>
-    The <emphasis>Pass count</emphasis> is an integer (unsigned) value which 
-    tells the debugger to skip the breakpoint that number of times before it 
-    is considered. <emphasis>Pass count</emphasis> has a higher priority than 
-    the <emphasis>Break condition</emphasis>. Only when the 
-    <emphasis>Pass count</emphasis> reaches zero will the debugger evaluate the 
-    <emphasis>Break condition</emphasis> (if any condition is present). If there 
-    is no condition, the debugger will break the execution once the 
-    <emphasis>Pass count</emphasis> counts down to zero.
-   </para>
-   <para>
-    The default value of the <emphasis>Pass count</emphasis> is zero. The 
-    breakpoint will be considered when it is first encountered.
+    The view has the following columns:
+    <variablelist>
+     <varlistentry>
+      <term>Location</term>
+      <listitem>
+       <para>
+        This is the position of the breakpoint in the source file. When the breakpoint
+        is set by the debugger, you can get additional information like the function
+        where is the breakpoint.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>Address</term>
+      <listitem>
+       <para>
+        This field is filled with the 
+        address of the breakpoint when it is set by the debugger.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>Type</term>
+      <listitem>
+       <para>
+        This displays always "breakpoint". It will be used
+        in a next version supporting different kind of breakpoints.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>Condition</term>
+      <listitem>
+       <para>
+        This is the breakpoint condition, it is empty if no condition is defined.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>Pass count</term>
+      <listitem>
+       <para>
+        When the debugger is not running, this column displays the pass count of the breakpoint,
+        zero if it is not defined.
+       </para>
+       <para>
+        When the debugger is running, if pass count is zero, this column displays
+        the number of time this breakpoint has been triggered. If pass count is not
+        zero, both numbers are displayed. The pass count is the second number.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>State</term>
+      <listitem>
+       <para>
+        This is the state of the breakpoint. You could have.
+        <itemizedlist>
+         <listitem><para>Pending: breakpoint is not set in your program.</para></listitem>
+         <listitem><para>Permanent: breakpoint is set (id number in given inside the parenthesis).</para></listitem>
+         <listitem><para>Temporary: breakpoint is set but will be deleted if reached.</para></listitem>
+        </itemizedlist>
+       </para>
+      </listitem>
+     </varlistentry>
+    </variablelist>
    </para>
    <note>
     <para>
      All breakpoints are kept across anjuta session even if they correspond to
-     a non existing place. The interface try to set them each time the program
-     is started or a new dynamic library is loaded.
+     a non existing place. In this case their state are set as pending.The interface
+     try to set them each time the program is started or a new dynamic library is loaded. 
     </para>
    </note>
   </sect2>  
@@ -356,18 +400,86 @@
     </figure>
    </para>
    <para>
-    Enter the location at which to set the breakpoint. Optionally, enter
-    the <emphasis>Break condition</emphasis> and the <emphasis>Pass count</emphasis>
-    in the appropriate entry boxes. Click <guibutton>OK</guibutton> to set the 
-	breakpoint.
+    You need to enter the location and optionally, the
+    break condition and the pass count then click <guibutton>OK</guibutton> to set the 
+    breakpoint.
+    <variablelist>
+     <varlistentry>
+      <term>Location</term>
+      <listitem>
+       <para>
+        Enter the location at which to set the breakpoint. It has to be specified in one of
+        the following formats:
+        <para>
+         <orderedlist>
+          <listitem><para>File_name:Line_number</para></listitem>
+          <listitem><para>Function_name</para></listitem>
+          <listitem><para>File:Function_name</para></listitem>
+         </orderedlist>
+        </para>
+       </para>
+       <para>
+        The first one is obvious &mdash; The location refers to the line number 
+        <emphasis>Line_number</emphasis> in the source file <emphasis>File</emphasis>. 
+        The second refers to the first line of the function 
+        <emphasis>Function_name</emphasis>. The third is similar to the second, except that 
+        this notation is used where there is more than one function with the name 
+        <emphasis>Function_name</emphasis> in the program. It is possible to 
+        differentiate between them by providing the <emphasis>File</emphasis>, so the 
+        notation refers to the function <emphasis>Function_name</emphasis> in the 
+        file <emphasis>File</emphasis>.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>Condition</term>
+      <listitem>
+       <para>
+        The <emphasis>Condition</emphasis> parameter displays a associated expression
+        which should evaluate to a Boolean value &mdash; that is, the 
+        evaluation of the expression should result in either TRUE(1) or FALSE(0). 
+        If the final evaluation value is not a Boolean value, then it will be 
+        appropriately type casted to a Boolean.
+       </para>
+       <para>
+        Every time the breakpoint is encountered during the execution, the break 
+        condition will be evaluated. The debugger will break the execution only if 
+        the evaluation results in a TRUE value, otherwise it will continue the 
+        execution as though there had been no breakpoint.
+       </para>
+       <para>
+        The default value, if you left this field blank, of <emphasis>Break condition</emphasis>
+        is TRUE. The debugger will always break the execution at the breakpoint location.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>Pass Count</term>
+      <listitem>
+       <para>
+        The <emphasis>Pass count</emphasis> is an integer (unsigned) value which 
+        tells the debugger to skip the breakpoint that number of times before it 
+        is considered. <emphasis>Pass count</emphasis> has a higher priority than 
+        the <emphasis>Break condition</emphasis>. Only when the 
+        <emphasis>Pass count</emphasis> reaches zero will the debugger evaluate the 
+        <emphasis>Break condition</emphasis> (if any condition is present). If there 
+        is no condition, the debugger will break the execution once the 
+        <emphasis>Pass count</emphasis> counts down to zero.
+       </para>
+       <para>
+        The default value, if you left this field blank, of the <emphasis>Pass count</emphasis>
+        is zero. The breakpoint will be considered when it is first encountered.
+       </para>
+      </listitem>
+     </varlistentry>
+    </variablelist>
    </para>
    <para>
-    A breakpoint may also be by selecting a line in the editor
+    A breakpoint may also be set by selecting a line in the editor
     and choosing the menu item <menuchoice><guisubmenu>Debug</guisubmenu>
-	<guimenuitem>Toggle Breakpoint</guimenuitem></menuchoice>, the editor popup
+	<guimenuitem>Toggle Breakpoint</guimenuitem></menuchoice> in the editor popup
 	menu item
-	<menuchoice><guimenuitem>Toggle Breakpoint</guimenuitem></menuchoice>
-    or the <guibutton>Toggle Breakpoint</guibutton> icon in the 
+        or the <guibutton>Toggle Breakpoint</guibutton> icon in the 
 	<interface>Debug toolbar</interface>.
    </para>
    <tip>
@@ -382,8 +494,8 @@
   <sect2 id="breaks-edit">
    <title>Editing Breakpoints</title>
    <para>
-    It is possible to change the condition of a breakpoint of the pass count by
-    selecting the breakpoint to edit in the breakpoint list and click in the
+    It is possible to change the condition and the pass count by
+    selecting the breakpoint in the breakpoint list and click in the
     popup menu item <menuchoice><guimenuitem>Edit Breakpoint</guimenuitem></menuchoice>.
    </para>
    <para>
@@ -395,8 +507,8 @@
   <sect2 id="breaks-del">
    <title>Deleting Breakpoints</title>
    <para>
-    Select the breakpoint to delete in the breakpoint list view	and click on
-    <menuchoice><guimenuitem>Remove Breakpoint</guimenuitem></menuchoice>.
+    Select the breakpoint in the breakpoint list view and click on
+    <menuchoice><guimenuitem>Remove Breakpoint</guimenuitem></menuchoice> to delete it.
    </para>
    <para>
     A existing breakpoint may also be deleted by selecting the line in the editor
@@ -407,6 +519,12 @@
     or the <guibutton>Toggle Breakpoint</guibutton> icon in the 
 	<interface>Debug toolbar</interface>.
    </para>
+   <para>
+    It is possible to remove all breakpoints by clicking on <menuchoice><guisubmenu>Debug</guisubmenu>
+	<guimenuitem>Remove All Breakpoints</guimenuitem></menuchoice> or on
+    <menuchoice><guimenuitem>Remove All Breakpoints</guimenuitem></menuchoice> in
+    the breakpoint list popup menu.
+   </para>
   </sect2>
 
   <sect2 id="breaks-enbdis">
@@ -415,7 +533,7 @@
     Click on the Enable column of the <interface>Breakpoint list window</interface> or
     in the menu item <menuchoice><guimenuitem>Enable Breakpoint</guimenuitem></menuchoice>
     to enable or disable the selected breakpoint. 
-	The breakpoint will be enabled or disabled, depending on the current state.
+	The breakpoint will be enabled or disabled, depending on its current state.
    </para>
    <para>
     To disable all breakpoints, click on <menuchoice><guisubmenu>Debug</guisubmenu>
@@ -439,10 +557,10 @@
     <guimenuitem>Locals</guimenuitem></menuchoice>
    </para>
    <para>
-    Local variables of the current frame (the current funtion in which the program control
+    Local variables of the current frame (the current function in which the program control
     is present) are displayed in the <interface>Locals list window</interface>.
     During execution of the program (eg. during single stepping), local
-    variables will be updated. If any varialble value was changed in the last debugging step, its
+    variables will be updated. If any variable value was changed in the last debugging step, its
     value will be highlight in red. The variables are presented in a tree form for easy
     view.
     <figure>
@@ -460,7 +578,7 @@
    <note>
     <para>
      Gdb is more and more often used as a back end for a graphical front end. It
-     has been improved recently in this area. It is recommanded to use the latest
+     has been improved recently in this area. It is recommended to use the latest
      version (6.6) of gdb. On older version, gdb can crash when the front end
      ask for an pointer with an invalid (but not used) value.
     </para>
@@ -546,11 +664,24 @@
    </para>
   </sect2>
 
+  <sect2 id="expr-hiver">
+   <title>Inspecting expressions in editor window</title>
+   <para>
+    When the debugger is active with the program stopped, you can get the value of an
+    expression just by putting the pointer over it and stay here for a few time.
+    If the expression is already present in the local or watch window, its value is
+    displayed in a tool tips window.
+   </para>
+   <para>
+    It is currently working only for simple variable, not for structures or arrays.
+   </para>
+  </sect2>
+
  </sect1>
 
 <!-- ============= Debugging: Program Stack ====================== -->
  <sect1 id="debugging-stack">
-  <title>Stack Trace and Thread</title>
+  <title>Stack Trace</title>
 
   <sect2 id="stack-win">
    <title>Stack Window</title>
@@ -588,7 +719,7 @@
   <sect2 id="stack-frame">
    <title>Setting the current frame</title>
    <para>
-    Double-clicking on any frame in the stack trace will set that frame as the 
+    Double-clicking on any frame in the stack trace set that frame as the 
 	currently selected frame (the arrow will point to the frame, indicating that it 
 	has been selected as the current frame). Alternatively, open the 
 	<interface>Operation menu</interface> by right-clicking on the 
@@ -596,11 +727,16 @@
 	<guimenuitem>Set frame</guimenuitem> to set the frame.
    </para>
    <para>
-    Changing the stack frame will change the <interface>Locals list window</interface>
+    Changing the stack frame changes the <interface>Locals list window</interface>
     content, but not the <interface>expression watch window</interface> as each
     expression is evaluated in the frame used when it was defined.
    </para>
   </sect2>
+ </sect1>
+
+<!-- ============= Debugging: Program Thread ====================== -->
+ <sect1 id="debugging-thread">
+  <title>Thread</title>
 
   <sect2 id="thread-win">
    <title>Thread Window</title>
@@ -611,8 +747,8 @@
    </para>
    <para>
     A small arrow points to the current thread. When the
-    programm is stopped, it correspond to the thread which has been interrupted.
-    Each thread has its own stack frame,so changing the current thread will change
+    program is stopped, it correspond to the thread which has been interrupted.
+    Each thread has its own stack frame,so changing the current thread change
     the current stack frame. 
    </para>
   </sect2>
@@ -628,8 +764,8 @@
 	<guimenuitem>Set current thread</guimenuitem> to set the thread.
    </para>
    <para>
-    Changing the thread will change the value of CPU registers and the current
-    stack frame, so the <interface>Locals list window</interface> will change too.
+    Changing the thread changes the value of CPU registers and the current
+    stack frame, so the <interface>Locals list window</interface> change too.
    </para>
   </sect2>
  </sect1>
@@ -663,7 +799,7 @@
    </para>
    <para>
     The first is the memory address in hexadecimal, the second is the memory content
-    in hexadecimal too and the last column is the memory content in ascii.
+    in hexadecimal too and the last column is the memory content in ASCII.
    </para>
    <para>
     The addressing space of even a 32 bits microprocessor is quite big(4 Giga bytes),



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]