Author:halw

Date:2009-01-26T21:01:22.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@170 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
halw
2009-01-26 21:01:22 +00:00
parent 0c40956aa4
commit 2bccdbc34d
16 changed files with 113 additions and 58 deletions

View File

@@ -1,11 +1,19 @@
[[Property:title|Debugging preferences]]
[[Property:weight|-4]]
[[Property:uuid|05e820ff-917f-e41f-d921-990283ac886f]]
Two main preferences are available for the debugger, in order to speed up the objects display :
* Enable/disable the debug_output display (see [[Debug output|debug output]] )
* Enable/disable the full generic type display (for instance see <eiffel>ARRAY [INTEGER] </eiffel>instead of only <eiffel>ARRAY</eiffel>
* To avoid infinite evalution processing, the debugger abort evaluation after "max evaluation duration" timeout. So you can change this value to fit your needs.
[[Image:debugging-tools-preferences]]
Debugger preferences are available as part of the [[EiffelStudio Preferences]].
The debugger section of the EiffelStudio preferences looks like this:
[[Image:debugging-tools-preferences]]
The EiffelStudio preference documentation contains a guide to the [[Debugger Preferences]].
Some preferences have an effect upon the speed at which the debugger can display objects:
* Enable/disable the debug_output display (see [[Debug output|debug output]])
* Enable/disable the full generic type display (for example, <eiffel>ARRAY [INTEGER]</eiffel> is displayed, instead of only <eiffel>ARRAY</eiffel>)
* To avoid infinite evaluation processing, the debugger aborts evaluation after "max evaluation duration" timeout.

View File

@@ -2,13 +2,13 @@
[[Property:weight|-5]]
[[Property:uuid|56b3c189-8fda-d78e-7e7c-c4cf4f786ff6]]
General behavior
* Double clicking on the grid's header separator will resize the corresponding column. If you hold the [SHIFT] key at the same time, it will resize according to the displayed cells.
* Double clicking on the grid's header separator will resize the corresponding column. If you hold the <code>SHIFT</code> key at the same time, it will resize according to the displayed cells.
* Right clicking on the header's cell will popup a menu that enable or disable the auto resizing on the selected column. This can be useful to resize automatically the "name" column when inspecting an object value.
* Pressing [CONTROL] + [E] when the selected line represents a value with potential text representation (STRING, DEBUG_OUPUT ...) will open the [[Object Viewer (also known as Expanded display)|expanded view dialog]]
* Pressing <code>CTRL</code>+<code>E</code> when the selected line represents a value with potential text representation (STRING, DEBUG_OUPUT ...) will open the [[Object Viewer (also known as Expanded display)|expanded view dialog]].
Watch tools (alias evaluation tool)
* Dropping an object value on a [[Evaluation tool or Watch tool|watch tool ]] will open the [[New expression dialog|expression definition dialog]] with the object's address filled. This way you can evalute expression directly on this object. If you press [Ctrl] during the dropping, the dropped object will be added as expression in the watch tool as itself.
* You can also drop the object on the notebook tab of the wanted watch tool.
Evaluation tool (also known as Watch tool)
* Dropping an object value on a [[Evaluation tool or Watch tool|Evaluation tool ]] will open the [[New expression dialog|expression definition dialog]] with the object's address filled. This way you can evaluate expression directly on this object. If you hold the <code>CTRL</code> key while dropping, the dropped object will be added as expression in the Evaluation tool as itself.
* You can also drop the object on the notebook tab of the desired Evaluation tool.

View File

@@ -1,24 +1,43 @@
[[Property:title|Exceptions handling tool]]
[[Property:weight|-7]]
[[Property:uuid|9a62611f-46ba-7d74-ba1c-989f6709074b]]
This tool is used to precise whether the debugger stops or continues on specific exceptions.<br/>
To show this tool, go to menu : '''Debug > Exception handling''' .<br/>
Note: now that exception are object in Eiffel too, the mechanism is unified for classic and dotnet system using the Eiffel exception class names.
This Exceptions handling tool is used to specify whether the debugger stops or continues on specific exceptions.
==Exception handling dialog==
To access this tool, follow the menu path:
If the "filter exceptions" is enabled, for each exception you can leave the exception action as '''Disabled''' (default behavior: catch), '''Catch''' (stop on such exception), '''Ignore''' (do not stop on such exception). By double clicking on the exception name you toggle Ignore/Catch.
In the following picture, we stop on every exception except the "External Exception".
<code lang=text>
Execution --> Exception handling</code>
{{note|Now that exceptions are objects in Eiffel, the mechanism is unified for classic and .NET systems, using the Eiffel exception class names. }}
==Tailoring exception handling behavior==
The image below shows the Exceptions handling tool.
[[Image:exceptions-handling-tool|Exception handling tool]]
{{tip|Using the "Pattern" field, you can add you own filter using regular expression.}}
In the top two checkboxes, the tool provides a way to enable and disable "Catcall" warnings on the console or in the debugger.
If the "filter exceptions" checkbox is enabled, for each exception you can specify the exception action as one of:
* '''Disabled''' means that filtering for this exception is not enabled. Therefore, the default behavior of '''Catch''' applies.
* '''Catch''' means stop on such an exception.
* '''Ignore''' means do not stop on such an exception.
You can double clicking an exception name to toggle its status between '''Ignore''' and '''Catch'''.
Clicking the button labeled ''Ignore External Exception?'' will set the status of a set of external exceptions to '''Ignore'''.
Click the button labeled ''Apply'' to apply your selections, or ''Reset'' to reset the tool to its default values.
{{tip|Using the "Pattern" field, you can add your own filters using regular expression.}}
==Cat call detection during the execution==
This dialog also provides a way to disable/enable the cat call warning on the console or in the debugger with the first two checkbox fields.

View File

@@ -23,14 +23,19 @@ For performance reason, the recording mechanism has a few parameters. For now th
{{warning|Since there is no way to restore local values when the execution left the related call stack frame, the recording discards the recorded local values.}}
The recording functionality is graphically available on the Call stack tool, or though the "Execution" menu (formerly the "Debug" menu).
The recording functionality is graphically available on the Call stack tool, or though the "Execution" menu (formerly the "Debug" menu).
After you start debugging, if at some point you decide to start recording, click on the "record" button:
After you start debugging, if at some point you decide to start recording, click on the "record" button in the Call stack tool:
[[Image:exec-replay-00]]
or follow the menu path:
<code lang=text>
Execution --> Activate Execution Recording</code>
{{note|If you want to record from the beginning, just enable the recording before starting the debug session (the recording button is a toggle button)}}

View File

@@ -4,7 +4,7 @@
The replay functionality is available from a button on the Call stack tool, or though EiffelStudio's "Execution" menu.
{{note|First, you must be sure execution recording is activated ([[Record execution|read how to record execution]] ).}}
{{note|First, you must be sure execution recording is activated ([[Record execution|read how to record execution]]).}}
Now, whenever the application is stopped in the debugger, you can replay the recorded execution by clicking on the "Replay" button:

View File

@@ -1,14 +1,24 @@
[[Property:title|Stack overflow prevention]]
[[Property:weight|-6]]
[[Property:uuid|bd988599-a444-6090-c3c4-a5c7de20b294]]
Accessible via the '''Debug/Overflow prevention...''' menu, this command makes it possible to detect stack overflows before they occur. Selecting it pops up a dialog that lets you decide at which call stack depth a warning should be issued.
Stack overflow prevention makes it possible to have the debugger detect stack overflow situations and warn you before they occur.
You can control this option through a dialog accessible via the menu path:
<code lang=text>
Execution --> Overflow prevention...</code>
The dialog lets you decide at which call stack depth a warning should be issued.
[[Image:stack-overflow-dlg]]
By default a warning is issued when the debugged program reaches a stack depth of 1,000 elements.
By default, a warning is issued when the debugged program reaches a stack depth of 1,000 elements.
{{note|Once an application has stopped at the selected level, it will not stop again until its stack depth goes below the critical stack depth again. }}

View File

@@ -4,7 +4,7 @@
This tool displays the list of current Eiffel threads. <br/>
To show this tool, use the menu path:
<code lang=text>
Debug --> Tools --> Threads </code>
Execution --> Tools --> Threads </code>
[[Image:threads-tool|Threads tool]]