mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2026-02-07 11:04:06 +01:00
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:
@@ -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.
|
||||
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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)}}
|
||||
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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. }}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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]]
|
||||
|
||||
Reference in New Issue
Block a user