Author:admin

Date:2008-09-17T13:53:28.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@3 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
jfiat
2008-09-17 13:53:28 +00:00
parent 4fee9356ea
commit 2ee31ab9c7
763 changed files with 36576 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
[[Property:title|Call stack tool: Interface]]
[[Property:weight|1]]
[[Image:call-stack-tool]]
The call stack tool gives information about the current call stack of a debugged application.
It is mainly composed of a list representing the call stack elements, where the entry feature of the program is at the bottom and the top of the call stack is at the top. <br/>
- The current call stack element, to which the [[Information relative to a stack element|other debug tools]] refer, is represented by a green arrow [[Image:callstack-active-arrow-icon]] . <br/>
- Clicking on a call stack element represented by an empty arrow [[Image:callstack-empty-arrow-icon]] , or picking it and dropping it onto either the call stack list or the locals view defines it as being the current call stack element. <br/>
- The call stack elements with no pixmap are called external call stack elements, they represent a call stack out of Eiffel, for instance a true dotnet call stack. <br/>
- For each feature in the call stack, its name, its dynamic class and its static class are displayed. An asterisk next to the name of a feature means the feature is melted, as opposed to frozen. The dynamic class is the type of the object upon which the feature is called, whereas the static class is the class in which the feature was written.
On top of this list, a line gives the state of the debugged application, and another one describes the exception that caused the application to stop, if any. For more information concerning exceptions, see the [[Supported exceptions|supported exceptions]] .
The button [[Image:debug-exception-dialog-icon]] is used to open the Exception dialog which show the exception details. For instance a call on Void target in a dotnet system would popup :
<center> [[Image:exception-dialog]] </center>
When more than one thread is available to the debugger, you can switch from one to the other, for that you have to click on the thread's id "0x000..." and select from the popup list of available threads. Or (recommended) you can use the [[Threads tool|threads tool]] (clicking on '''Show threads panel''' will show the threads tool).
<center> [[Image:call-stack-tool-with-threads]] </center>
In the toolbar, the button [[Image:general-save-icon]] gives the possibility to [[Save call stack|save the call stack]] to a text file, and the button [[Image:general-copy-icon]] copy to the clipboard. The [[Image:debugger-callstack-depth-icon]] button makes it possible to choose which call stack depth should be displayed in the list (the default is to display the 100 top stack elements, but it is configurable with the same button).

View File

@@ -0,0 +1,11 @@
[[Property:title|Call stack tool]]
[[Property:weight|-13]]
* [[Callstack tool: Introduction|Introduction]]
* [[Call stack tool: Interface|Call stack tool]]
* [[Information relative to a stack element|Information about the current stack level]]
* [[Supported exceptions|Supported exceptions]]
* [[Save call stack|Save call stack command]]

View File

@@ -0,0 +1,11 @@
[[Property:title|Information relative to a stack element]]
[[Property:weight|2]]
In addition to the [[Call stack tool: Interface|call stack tool]] that provides information concerning the call stack in its globality, some other debug tools give information concerning the [[Call stack tool: Interface|current call stack element]] .
In debug mode, the context tool is automatically switched to the feature tab in flat view, and displays the feature which corresponds to the current call stack element. In the left margin, a yellow arrow ( [[Image:bp-current-line-icon]] ) marks the execution line where the program is currently stopped, whereas a green arrow ( [[Image:bp-slot-other-frame-icon]] ) indicates the execution line that was attained in the feature in the current call stack element. Therefore, if a feature is recursive, and appears several times in the call stack, changing the current call stack element may cause green arrows to be displayed at different places in the same feature (if the different calls did not reach the same execution point). On the other hand, the yellow arrow can only appear at one place as long as the application is not started again.
The left part of the [[Objects tool: Introduction|object tool]] gives valuable information concerning parameters that were passed to the feature corresponding to the current call stack, the current value of the local variables, and, if it is a function, the current value of its result.

View File

@@ -0,0 +1,7 @@
[[Property:title|Save call stack]]
[[Property:weight|4]]
It is possible to copy the current call stack to the clipboard ( [[Image:general-copy-icon]] ) or to a text file ( [[Image:general-save-icon]] ). This may be useful to indicate to other people of a team where an error occurred. After the button is clicked, a dialog is popped up that prompts for a place where to save the [[Call stack tool: Interface|call stack]] (if the selected file already exists, it is overwritten).

View File

@@ -0,0 +1,47 @@
[[Property:title|Supported exceptions]]
[[Property:weight|3]]
Here is a list of exceptions that may appear in the [[Call stack tool: Interface|call stack tool]] . When they are raised, a tag may be there to give more information, if necessary. All these exceptions are declared in <eiffel>EXCEPT_CONST</eiffel>.
'''Feature call on Void target''': An attempt was made to calla feature on an object that is Void. The tag indicates the name of the feature of the feature that could not be called. For instance if the code line is <eiffel>a.b.c</eiffel> and the tag is "c" then <eiffel>a.b</eiffel> was Void.
'''No more memory''': A memory allocation failed.
'''Precondition violated''': One of the conditions necessary prior to entering a feature is not verified. This may indicate either that the precondition is too strong, or that the call is invalid. The tag should give the name of the violated precondition, if any.
'''Postcondition violated''': One of the conditions checked when a feature exits is not verified. This may indicate either that the postcondition is too strong, or that the feature did not behave correctly. The tag should give the name of the violated postcondition, if any.
'''Class invariant violated''': One of the conditions that checks the validity of objects is not verified. This may indicate that an object was left in an invalid state after a method call. The tag should give the name of the violated invariant, if any.
'''Assertion violated''': An assertion was not verified. The tag should give the name of the violated assertion, if any.
'''Non-decreasing loop variant''': A loop variant does not vary. This may lead to stack overflows or erroneous results.
'''Loop invariant violated''': A condition that should be checked when executing a loop is not verified. The tag should give the name of the violated invariant.
'''Floating point exception''' (signal SIGFPE): An error occurred while processing floating point numbers. This may be for example a FPU overflow, a division by zero, or an invalid operation.
'''Unmatched inspect value''': An inspect clause couldn't find the value it was passed among the `when' clauses. If any value maybe passed to the `when' clause, adding an `else' clause will solve this problem.
'''I/O error''': An error occurred while accessing a stream. Examples of this are a missing file, or insufficient rights.
'''Retrieval error''': A file could not be retrieved. This maybe caused by an invalid header, or more generally by a corrupted data file.
'''Developer exception''': Developer exceptions can be raised by calling {<eiffel>EXCEPTIONS</eiffel>}.<eiffel>raise</eiffel>. They can indicate any kind of internal error.
'''Operating system signal''': The program received a signal from the operating system.
'''Exception in rescue clause''': An exception occurred within a rescue clause.
'''Void assigned to expanded''': An attempt was made to assign a Void value to an expanded object.
'''Run-time I/O error''': Exception raised by the run-time when encountering a I/O error internally.
'''External event''': On Unix, this happens when an operating system error occurs and does not set the `errno' variable.
'''Operating system error''': On Unix, this happens when an operating system error occurs and sets the `errno' variable.
'''COM error''': Raised when EiffelCOM encounters an error.