mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-08 07:42:33 +01:00
Upcoming release 24.05
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2469 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
[[Property:title|Attribute symbols]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|6dfbde5d-3423-4f10-6569-30af2ba00dd1]]
|
||||
In both trees of the [[Object tool|object tool]], objects are displayed. The values displayed for each object fall into two categories: the object's attributes (grouped under the '''attributes''' folder [[Image:feature-attribute-icon]] ) and its once routines (grouped under the '''once routines''' folder [[Image:feature-once-icon]] ).
|
||||
|
||||
The following symbol scheme is used to categorize each item:
|
||||
* [[Image:debugger-object-immediate-icon]] An attribute of a basic Eiffel type, such as [[ref:libraries/base/reference/kernel/integer_chart.xml|INTEGER]] or [[ref:libraries/base/reference/kernel/classic/double_chart.xml|DOUBLE]]
|
||||
* [[Image:debugger-object-eiffel-icon]] An attribute that is a reference to an object
|
||||
* [[Image:debugger-object-void-icon]] A Void reference
|
||||
* [[Image:debugger-object-expanded-icon]] An object that is expanded
|
||||
|
||||
For .NET system, special symbols are used to describe :
|
||||
* [[Image:debugger-object-dotnet-icon]] An object that is external (i.e., not known as an Eiffel type)
|
||||
* [[Image:debugger-object-dotnet-static-icon]] A static value object that is external (i.e., not known as an Eiffel type)
|
||||
* [[Image:debugger-object-static-icon]] A static value object that is known as an Eiffel type
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
[[Property:title|Debug output]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|41544c3b-e1f1-53a5-ff63-e63224c32fa3]]
|
||||
For virtually any object displayed in the Object tool, it is possible for the developer to cause the Object tool to display a user-definable string value next to the object address.
|
||||
|
||||
In order to have the instances of a class display such a string in the object tool, make the class an heir to class <eiffel>DEBUG_OUTPUT</eiffel>. Then implement the feature <eiffel>debug_output</eiffel> to return the string to be displayed. At run-time, the debugger will automatically query this feature on all objects that define it, and then will display the results in the object tool and the [[Expression evaluation|evaluation tool]].
|
||||
|
||||
|
||||
{{sample|The numeric *<code>_REF</code> classes inherit (through class <eiffel>NUMERIC</eiffel>) from the class <eiffel>DEBUG_OUTPUT</eiffel> so that it is possible to see immediately the value of *<code>_REF</code> objects in the Object tool. The *<code>_REF</code> classes are reference versions of the basic Eiffel classes such as [[ref:libraries/base/reference/kernel/integer_chart.xml|INTEGER]] and [[ref:libraries/base/reference/kernel/classic/double_chart.xml|DOUBLE]]. So, without <eiffel>DEBUG_OUTPUT</eiffel>, if you wanted to see, for example, the value of the [[ref:libraries/base/reference/kernel/integer_chart.xml|INTEGER]] associated with an instance of [[ref:libraries/base/reference/kernel/integer_ref_chart.xml|INTEGER_REF]] displayed in the Object tool, you would have expand the reference first.}}
|
||||
|
||||
|
||||
{{tip|If an object has a long string output or an output with carriage returns, for instance, pick-and-drop it to the expanded display command [[Image:debugger-expand-info-icon]] in the object tool. }}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
[[Property:title|Object tool]]
|
||||
[[Property:weight|-11]]
|
||||
[[Property:uuid|6b736424-1729-0b6f-6ddd-8240f9f8ffd6]]
|
||||
[[Image:object-tool]]
|
||||
|
||||
The object tool is a debugging tool that displays extended dynamic information about runtime objects while debugging an application. This information includes the values of attributes, as well as the values of <code>once</code> functions that have already been called.
|
||||
|
||||
By default the Object tool display is composed of one grid, which gives information about the [[Call stack tool|current stack element]]. Specifically, it provides the Current object value, the arguments' values of the current stack element's feature call, the values of the local variables, as well as the value of the <code>Result</code> (if this feature is a function).
|
||||
|
||||
When an exception occurs (for instance, an assertion violation), the object tool will also display the exception information:
|
||||
|
||||
|
||||
[[Image:objects-tool-exception]]
|
||||
|
||||
|
||||
{{note|A specific case for .NET systems: When the system is stopped, the first item of the local view displays the module name for the feature at which execution stopped. }}
|
||||
|
||||
All objects can be expanded to see the values of their attributes. They are also pickable, so that it is possible to drop them onto the Object tool, an [[Expression evaluation|expression evaluator tool]] (also know as Watch tool), or an editor.
|
||||
|
||||
It is also possible to use the [[Set slice size command|set slice size command]] with [[ref:libraries/base/reference/special_chart|SPECIAL]] objects or [[ref:libraries/base/reference/native_array_chart|NATIVE_ARRAY]] (.NET) objects.
|
||||
|
||||
|
||||
|
||||
'''The toolbar buttons:'''<br/>
|
||||
* the [[Remove object command|remove object command]] [[Image:general-delete-icon]] <br/>
|
||||
* the [[Set slice size command|set slice size command]] [[Image:debugger-set-sizes-icon]] .<br/>
|
||||
* the button [[Image:debugger-expand-info-icon]] can give an [[Object Viewer (also known as Expanded display)|expanded display]] of the string relative to an object, by dropping the object onto the button (or pressing Ctrl+E on the selected value). Use it if an object has a very long string representation or a string representation that contains carriage returns, for example.<br/>
|
||||
* the button [[Image:debugger-show-hex-value-icon]] switches the display of integer values between decimal and hexadecimal format.<br/>
|
||||
* and the button [[Image:execution-object-storage-icon]] controls the [[Debuggee's Object Storage|remote object storage]] .
|
||||
|
||||
|
||||
{{tip|The tool's layout can be customized to have 2 side-by-side "left" and "right" grids holding the various information. This can be done using the button ( [[Image:toolbar-dropdown-icon]] ) from the toolbar which open the objects tool menu and then select "Edit Layout". Then you can use the tool layout editor as shown below to adjust which information you want displayed in each of the two sides. }}
|
||||
|
||||
|
||||
[[Image:object-tool-layout-editor]]
|
||||
|
||||
|
||||
{{note| By default, the object tool displays the full generating type for object, but this can be changed for speed concern in the [[Debugging preferences|preferences]] . The same way, through the [[Debugging preferences|preferences]] , the user can enable or disable the evaluation of the [[Debug output|Debug Output]] feature. }}
|
||||
|
||||
{{note|When a row displays a pink background, this indicates the value has changed as a result of the previous step. }}
|
||||
|
||||
{{tip|The [[Expression evaluation|expression evaluator tools]] (also known as Watch tools) provide many of the same features as the object tool along with even more functionality. }}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
[[Property:title|Object Viewer (also known as Expanded display)]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|62002ce3-37f9-22de-39f0-0930468a67be]]
|
||||
You can either show the "Object Viewer" tool through the menu path
|
||||
<code lang=text>
|
||||
Execution --> Tools --> Object Viewer</code>
|
||||
|
||||
or pop-up the object viewer dialog by clicking the button ( [[Image:debugger-expand-info-icon]] ) located in the tool bar of the [[Object tool|objects tool]] and [[Expression evaluation|watch tool]].
|
||||
|
||||
This command [[Image:debugger-expand-info-icon]] opens an object viewer dialog when an object is dropped onto the button.
|
||||
|
||||
Depending the nature of the dropped object, you can view it with one or more of several viewers:
|
||||
* '''Object dump''': dump a text representation of the value
|
||||
* '''String display''': string representation
|
||||
* '''XML display''': xml viewer
|
||||
* '''Object browse''': browse the object, as you would do in the Object or watch tools
|
||||
* '''Object internal''': display some internal data elements such as:
|
||||
** <code>class_name</code>
|
||||
** <code>type_name</code>
|
||||
** <code>dynamic_type</code>
|
||||
** <code>field_count</code>
|
||||
** <code>deep_physicial_size</code>
|
||||
** <code>physical_size</code>
|
||||
|
||||
{{note|The "string display" viewer is available for objects with a string representation, for instance objects whose types conform to [[ref:libraries/base/reference/string_8_chart|STRING_8]] or conform to [[ref:libraries/base/reference/debug_output_chart|DEBUG_OUTPUT]] (see [[Debug output|Debug Output]]. )}}
|
||||
|
||||
{{note|The "XML display" is available for objects eligible for "String display", and whose string representation has XML content. The viewer displays XML in a tree-enabled grid.}}
|
||||
|
||||
|
||||
'''String display viewer:''':
|
||||
|
||||
|
||||
[[Image:expanded-display-default]]
|
||||
|
||||
Displays the object as a string, by default the displayed length is 50:<br/>
|
||||
If the limits are over the current slice limits, the displayed string will end by "..." to show there is more.<br/>
|
||||
If you click on the auto expand button [[Image:debugger-object-expand-icon]] , the slice limits will be set to the lower and upper limits of the string value.
|
||||
|
||||
You can enable or disable the line wrapping by clicking onto [[Image:general-word-wrap-icon]] .
|
||||
|
||||
|
||||
|
||||
'''Object dump viewer:'''
|
||||
|
||||
|
||||
[[Image:object-viewer-dump]]
|
||||
|
||||
|
||||
'''Object browse viewer:'''
|
||||
|
||||
|
||||
[[Image:object-viewer-browse]]
|
||||
|
||||
|
||||
'''Object internal viewer:'''
|
||||
|
||||
|
||||
[[Image:object-viewer-internal]]
|
||||
|
||||
|
||||
'''XML viewer:'''
|
||||
|
||||
|
||||
[[Image:object-viewer-xml]]
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
[[Property:title|Remove object command]]
|
||||
[[Property:weight|5]]
|
||||
[[Property:uuid|42b5ea32-ef9c-207f-7dbe-c871a4515db3]]
|
||||
Located in the [[Object tool|object tool]] toolbar, this command [[Image:general-delete-icon]] discards an object from the [[Object tool|object tool]]. All top-level objects can be removed, except the first one, which is the object relative to the [[Call stack tool|current call stack element]] .
|
||||
|
||||
Left-clicking on this button removes the selected object from the [[Object tool|object tool]], if possible. It is also possible to [[Pick-and-drop mechanism|drop]] an object onto the button to remove the object.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
[[Property:title|Set slice size command]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|ce2469a3-cf00-554e-47bd-5e8b2fdbc783]]
|
||||
Located in the object tool toolbar, this command [[Image:debugger-set-sizes-icon]] changes the display size of special objects (i.e. objects whose class is [[ref:libraries/base/reference/special_chart|SPECIAL]], most importantly in the representation of arrays and strings). Because special objects may contain thousands of attributes, only the first fifty are displayed by default. If left-clicked, a dialog is popped up that sets the exploration indices of special objects that will be loaded in the future.
|
||||
|
||||
This pop-up also shows the "Maximum displayed string size" in the grid ([[Object tool|object tool]], or the [[Expression evaluation|watch tools]]).
|
||||
|
||||
This dialog changes the settings for future special objects:
|
||||
|
||||
|
||||
[[Image:set-slice-size-dlg]]
|
||||
|
||||
|
||||
You can affect the display of a single special object only by [[Pick-and-drop mechanism|dropping]] the object onto this ( [[Image:debugger-set-sizes-icon]] ) command. A dialog box appears, and the special object that is dropped is shrunk or expanded in the tree according to the new exploration indices you set in the dialog box. The dropped object may be any special object, top-level or not.
|
||||
|
||||
This dialog changes the settings for a single special object (the dropped object) :
|
||||
|
||||
|
||||
[[Image:set-default-slice-size-dlg]]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user