From 7c808cf461b3a7a9c900494df89c9e6407b1ecec Mon Sep 17 00:00:00 2001 From: halw Date: Wed, 14 Jan 2009 05:38:12 +0000 Subject: [PATCH] Author:halw Date:2009-01-14T05:38:12.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@162 abb3cda0-5349-4a8f-a601-0c33ac3a8c38 --- .../using-breakpoints.wiki | 2 +- .../class-menu.wiki | 5 +- .../compile-and-run-menu.wiki | 4 +- .../documentation-menu.wiki | 2 +- .../feature-menu.wiki | 8 ++-- .../command-line-interactive-mode/index.wiki | 28 +++++++---- .../profile-menu.wiki | 35 +++++++++----- .../system-menu.wiki | 2 +- .../compiler/command-line/index.wiki | 2 +- .../definition-file.wiki | 9 ++-- .../dynamic-library-generated-files.wiki | 21 ++++---- .../dynamic-library-generation/index.wiki | 12 +++-- .../breakpoints/breakpoint-commands.wiki | 6 +-- .../breakpoints/breakpoint-editing.wiki | 48 +++++++++---------- .../breakpoint-information-command.wiki | 15 +++--- .../debugger/breakpoints/index.wiki | 17 +++++-- .../execute-one-line-time.wiki | 2 +- .../debugger/execution-commands/index.wiki | 29 +++++++---- .../execution-commands/pause-application.wiki | 2 +- .../run-and-stop-breakpoints.wiki | 4 +- .../run-finalized-executable.wiki | 2 +- .../run-without-breakpoints.wiki | 4 +- .../execution-commands/step-feature.wiki | 2 +- .../execution-commands/step-out-feature.wiki | 2 +- .../stop-debugged-application.wiki | 2 +- .../debugger/index.wiki | 24 ++++------ .../advanced-options/index.wiki | 4 +- 27 files changed, 169 insertions(+), 124 deletions(-) diff --git a/documentation/current/eiffelstudio/eiffelstudio-how-tos/running-and-debugging/using-breakpoints.wiki b/documentation/current/eiffelstudio/eiffelstudio-how-tos/running-and-debugging/using-breakpoints.wiki index 73e29a45..d27a9d66 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-how-tos/running-and-debugging/using-breakpoints.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-how-tos/running-and-debugging/using-breakpoints.wiki @@ -8,7 +8,7 @@ To change the status of several breakpoints at the same time, the easiest way is {{seealso|
[[Running an application|Running an application]]
[[Interrupting an application|Interrupting an application]]
-[[Breakpoints: Introduction|Breakpoints reference]] }} +[[Breakpoints|Breakpoints reference]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/class-menu.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/class-menu.wiki index 2f4adc7c..1d9f1e40 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/class-menu.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/class-menu.wiki @@ -2,7 +2,7 @@ [[Property:weight|2]] [[Property:uuid|441d6cbb-2c48-5d44-8cb1-0884ade26b98]] The Class command (c or C) in the main menu will only work if the system has been successfully compiled, and will give you information based on the result of the last successful compilation. It produces the following menu: - + (A) Ancestors : show the ancestors of a class. (B) Attributes : show the attributes of a class. (C) Clients : show the clients of a class. @@ -26,7 +26,8 @@ The Class command (c or C) in the main menu will only work if the system has bee Each command will prompt you for the name of a class and a filter to use; you can also include the class name and the filter name after the command, separated by a space, as in: -Command => a linked_list ascii + +Command => a linked_list ascii to obtain the ancestors of the LINKED_LIST class: -- Automatic generation produced by ISE Eiffel -- diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/compile-and-run-menu.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/compile-and-run-menu.wiki index 1c2cbea5..a09dd87e 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/compile-and-run-menu.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/compile-and-run-menu.wiki @@ -2,7 +2,7 @@ [[Property:weight|1]] [[Property:uuid|58af783e-7fc4-9fa3-2374-4143204948bb]] The Compile command (i or I) in the main menu yields the following item menu: - + (A) Arguments : set the arguments. (C) F-compile : (re)compile the C code generated by finalize. (Z) Finalize : finalize the system (discard assertions by default). @@ -20,7 +20,7 @@ The Compile command (i or I) in the main menu yields the following item menu: The most common compiling option is L (Melt): recompile the system, melting recent changes. The other compilation possibilities are F (Freeze) and Z (Finalize). After a Freeze you will need to C-compile the result using the W (W-compile) command; similarly, you can C-compile the result of a Finalize using C (F-compile). -{{warning| '''Caution''': You cannot select a different project from within ec loop; also, you cannot select a different configuration file from within the command, although you may of course change the contents of the configuration file (for example by using an editor in an other window). }} +{{caution|You cannot select a different project from within ec loop; also, you cannot select a different configuration file from within the command, although you may of course change the contents of the configuration file (for example by using an editor in an other window). }} The R option (Run) runs the application. You will be prompted for the arguments if the application needs any. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/documentation-menu.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/documentation-menu.wiki index 909038b0..323ac9a7 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/documentation-menu.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/documentation-menu.wiki @@ -2,7 +2,7 @@ [[Property:weight|7]] [[Property:uuid|4ed93bc4-07eb-57ed-b339-4890b5f58fcc]] The Documentation Menu enables you to generate documentation about the classes of your system: - + (I) Documentation (Flat/Short): Generate flat/short form of all classes in system. (S) Documentation (Short): Generate short form of all classes in system. (F) Documentation (Flat): Generate flat form of all classes in system. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/feature-menu.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/feature-menu.wiki index 8b171c73..5d0befda 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/feature-menu.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/feature-menu.wiki @@ -2,7 +2,7 @@ [[Property:weight|3]] [[Property:uuid|a662251b-777d-5e28-0e52-ba4932195528]] The Feature Menu enables you to find properties of a feature: - + (A) Ancestors : show the ancestor versions of a feature. (C) Callers : show the callers of a feature. (D) Descendants : show the descendant versions of a feature. @@ -18,7 +18,7 @@ The Feature Menu enables you to find properties of a feature: Each command will prompt you for the name of a class, the name of a feature in that class and a filter name; you can specify these names (or just the class name) after the command. -{| +{| border="1" |- |
'''Command'''
|
'''Description'''
@@ -26,7 +26,7 @@ Each command will prompt you for the name of a class, the name of a feature in t | Ancestors | All the versions of a feature that appeared in ancestors. |- -| Callers +| Callers | The list of classes which contains calls to the feature. Modifiers: * All senders - include all callers rather than only those in the specified class * Only assigners - restrict callers to those that use given feature only as a target of an assignment instruction @@ -34,7 +34,7 @@ Each command will prompt you for the name of a class, the name of a feature in t |- | Descendants -| All the versionsof a feature that appeared in descendants. +| All the versions of a feature that appeared in descendants. |- | Implementers | The list of classes where the feature is redeclared. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/index.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/index.wiki index be7d87a8..3a2a7a98 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/index.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/index.wiki @@ -1,14 +1,26 @@ [[Property:title|Command line interactive mode]] [[Property:weight|3]] [[Property:uuid|3a0acea6-c6d1-c7b9-c2f9-88021cad26b6]] -* [[Interactive command line: Introduction|Introduction]] -* [[Compile (and run) menu|The Compile (and Run) menu]] -* [[Class menu|The Class menu]] -* [[Feature menu|The Feature menu]] -* [[System menu|The System menu]] -* [[Profile menu|The Profile menu]] -* [[Documentation menu|The Documentation menu]] - +If you need to use '''ec''' to execute a number of successive operations on a system, you do not need to restart the command each time; instead you may use the -loop option, which will interactively prompt you for successive operations. +If you launch '''ec''' with this option, you will get the interactive version's Main Menu: + +==== ISE EiffelStudio - Interactive Batch Version (v5.5.0926 Enterprise Edition) === + (C) Class : class formats and information. + (I) Compile : compile or run the system. + (F) Feature : feature formats and information. + (S) System : Config and cluster details. + (P) Profile : information about a profiled run. + (D) Documentation: create documents from the system. + + (H) Help : show list of commands. + (Q) Quit : terminate session. + (Y) Yank : yank (save) output of last command to a file. +Command => +
+The revision number in the first line may be different in your case to indicate that you have a more recent delivery. In this menu, and in all subsequent ones, the commands appear in two groups. +* commands in the first group are specific to each menu +* commands in the second group H (Help) to repeat the list of choices, Y (Yank) to save the output of the last command to a file that you will be prompted to name, and Q (Quit) to quit appear in all menus, and will be complemented in the Item Menus below by the M (Main) command which returns to the main menu. +By typing one of the letters shown in the Main Menu's first group, you can go to one of the Item Menus: [[Class menu|Class]], [[Compile (and run) menu|Compile]], [[Feature menu|Feature]], [[System menu|System]], [[Profile menu|Profile]], and [[Documentation menu|Documentation]]. [[Compile (and run) menu|Compile]] enables you to compile a system and execute the result; the next three enable you to obtain information about your project. [[Profile menu|Profile]] will enable you to exploit profiling information. Finally, [[Documentation menu|Documentation]] will enable you to generate HTML documentation about your project. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/profile-menu.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/profile-menu.wiki index a5b6275a..eae353ea 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/profile-menu.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/profile-menu.wiki @@ -5,7 +5,7 @@ An execution of an instrumented system will generate a file that contains profil The profile menu will enable you to produce the Execution profile and to extract information from it. The menu (obtained by selecting (P) Profile in the main menu) looks like this: - + (S) Switches : show the output switches #Call-E Name-E Total-D Self-D Desc-D %Time-D. @@ -25,7 +25,7 @@ The menu (obtained by selecting (P) Profile in the main menu) looks like this: ==Switches submenu== The (S) Switches submenu enables you to set global options. It leads you to the following set of choices: - + (N) Calls : disable output of number of calls to a feature [enabled]. (F) Feature name : disable output of feature names [enabled]. (T) Total : enable output of time spent in both the function and its descendants [disabled]. @@ -43,7 +43,7 @@ Each one of these commands switches on or off the corresponding column output. T ==Query submenu== The (U) Query submenu enables you to define a set of queries. The result will be a Total Query; by default it is the boolean and all the queries you have entered individually, but you may deactivate some of these and choose other boolean operators. - + (A) Add : add a sub query. (I) Inactivate : inactivate sub query. (R) Reactivate : reactivate sub query. @@ -56,15 +56,22 @@ The (U) Query submenu enables you to define a set of queries. The result will be (Q) Quit : terminate session. (Y) Yank : yank (save) output of last command to a file. -To get useful information, you should add the appropriate queries through (A) Add. Each individual query has the following form: attribute operator value, where attribute is one of: +To get useful information, you should add the appropriate queries through (A) Add. Each individual query has the following form: ''attribute operator value'', where ''attribute'' is one of: * feature name * calls * total * self * descendants * percentage -operator is one of: <, >, <=, >=, =, /=, in -and value is one of: +''operator'' is one of: +* < +* > +* <= +* >= +* = +* /= +* in
+and ''value'' is one of: * An integer (for calls) * A string (for feature name). The string may contain wild card characters: ?, standing for arbitrary characters, and *,standing for arbitrary substrings. * A real value (for other attributes) @@ -78,7 +85,7 @@ To inactivate a query, use (I) Inactivate. You will be prompted for a query inde To reactivate a query, use (R) Reactivate. Again you will have to provide a query index. The Total Query resulting from a succession of (A) Add commands, possibly with some (I) Inactivate and (R) Reactivate commands, is a boolean query resulting by default from adding all the currently active queries. For example after the following set of commands(note that commands output help lines, which have been skipped here): - + Command => a --> Subquery: featurename = put* @@ -102,7 +109,7 @@ Command => a --> Subquery: calls > 5
The (S) Show command will show the following result: - + Command => s All subqueries: [1] featurename = put* is active @@ -114,7 +121,7 @@ featurename = put* and calls > 5 To change the boolean operator to 'or' rather than 'and', use the (C) Operator command. It will prompt you for the index of the operator and the new value: - + Command => c --> Operator index followed by operator ('and' or 'or'): 1 or @@ -132,9 +139,11 @@ calls > 5 The (I) Input command serves to load Execution Profiles. It is initially set to *.pfi meaning that it will load all files with extension pfi. By calling the command repeatedly with new arguments, you are able to load more Execution Profiles. If you use the command without any argument, and the set of input files contained just one file, then the queries will use the last generated output. This avoids explicitly loading a file. ==Language command== The (L) Language command enables you to specify the languages to which profiling should be applied. You can specify Eiffel only, C only, or both. If you specify only one language, the query results will not contain any information about routines written in the other language. -The default is Eiffel only. To switch to both Eiffel and C, use Command => L eiffel and c +The default is Eiffel only. To switch to both Eiffel and C, use + +Command => L eiffel and c -To return to just Eiffel, simply type L. +To return to just Eiffel, simply type L . ==Run Command== To run the current total query, use (R) Run. @@ -145,7 +154,9 @@ When running the Generate command with no arguments, you will be prompted for th * Compilation mode: workbench or finalized (default: workbench). * Name of profiler tool (default: eiffel). -You can also type in the arguments directly without waiting to be prompted, as in command => g profinfo finalize eiffel
+You can also type in the arguments directly without waiting to be prompted, as in + +Command => g profinfo finalize eiffel {{seealso|
diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/system-menu.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/system-menu.wiki index f89d0c4e..368e9a60 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/system-menu.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/command-line-interactive-mode/system-menu.wiki @@ -2,7 +2,7 @@ [[Property:weight|4]] [[Property:uuid|c1450c9b-a5d3-3709-1176-9c5c49def362]] The System Menu gives general information about the system: - + (A) Config : show the config file. (L) Classes : show the classes in alphabetic order. (S) Cluster hierarchy: display the cluster hierarchy of the system. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/index.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/index.wiki index 303ba2e3..a6a5b0eb 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/index.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/index.wiki @@ -4,7 +4,7 @@ ==Using the command line compiler== It is possible to compile from outside of the graphical environment, by using the command '''ec'''. The form of compilation's results are the same in both cases. You may therefore alternate between the two techniques. '''ec''' will enable you to [[EiffelStudio: Command line options|melt or freeze]] a project and therefore to use [[Batch compilation|batch compilation]] . It will also enable you to produce [[EiffelStudio: Command line options|information about a class]] such as its Flat and Flat Contract views.
-The [[Interactive command line: Introduction|-loop option]] makes it possible to start '''ec''' just once and then repeatedly request any of the available operations. +The [[EiffelStudio: Command line options|-loop option]] makes it possible to start '''ec''' just once and then repeatedly request any of the available operations. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/definition-file.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/definition-file.wiki index 8b031d4d..9a67fddd 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/definition-file.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/definition-file.wiki @@ -5,7 +5,7 @@ The syntax is pretty simple when you understand what you need to export a featur ===Syntax=== -{| +{| border="1" |- | '''Export_feature''' | Class_name [Creation_part] ":" Feature [Optional_part] @@ -29,10 +29,11 @@ The syntax is pretty simple when you understand what you need to export a featur ===Example=== -ROOT_CLASS (make): foo @ 4 Alias my_foo call_type __stdcall + +ROOT_CLASS (make): foo @ 4 Alias my_foo call_type __stdcall -===Constraint=== +===Constraints===
* on the class:
The class cannot be deferred or generic.
* on the feature:
It could be any feature except an attribute, an external feature or a deferred feature.
@@ -47,7 +48,7 @@ For each feature the required fields are the '''class''', the '''creation proced ===A definition file=== - + -- EXPORTED FEATURE(s) OF THE SHARED LIBRARY -- SYSTEM : demo diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/dynamic-library-generated-files.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/dynamic-library-generated-files.wiki index 2e61174a..d56a13f3 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/dynamic-library-generated-files.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/dynamic-library-generated-files.wiki @@ -1,38 +1,39 @@ [[Property:title|Dynamic library: Generated files]] [[Property:weight|3]] [[Property:uuid|f3926dd7-eb68-7a82-39f0-b4f5ea891436]] -Basically, once the Eiffel definition file is created, the compiler will generate a set of files and will compile them to generate the Dynamic library into the ''EIFGENs/target_name/W_code'' or ''EIFGENs/target_name/F_code'' directory. +Once the Eiffel definition file is created, the compiler will generate a set of files and will compile them to generate the Dynamic library into the EIFGENs/target_name/W_code or EIFGENs/target_name/F_code directory. {{note|To generate and compile these files, you have to indicate the definition file that should be used in the [[Advanced Options|advanced node of the project settings]] of your system. This way EiffelStudio will know which one to use. If you do not specify any definition file, nothing will be generated. }} The set of files is composed of:
-* EIFGENs/target_name/W_code/'''system.def''' (or F_code) -* EIFGENs/target_name/W_code/'''edynlib.c''' (or F_code) -* $(ISE_EIFFEL)/studio/spec/$(ISE_PLATFORM)/templates/'''egc_dynlib.template'''
+* EIFGENs/target_name/W_code/'''system.def''' (or F_code) +* EIFGENs/target_name/W_code/'''edynlib.c''' (or F_code) +* $(ISE_EIFFEL)/studio/spec/$(ISE_PLATFORM)/templates/'''egc_dynlib.template'''
this file will be copied during the compilation into the EIFGENs/target_name/W_code/E1 directory as '''egc_dynlib.c''' -* $(ISE_EIFFEL)/studio/spec/$(ISE_PLATFORM)/include/'''egc_dynlib.h''' +* $(ISE_EIFFEL)/studio/spec/$(ISE_PLATFORM)/include/'''egc_dynlib.h''' * and the Makefile
The ''system.def'' is only used on windows, it is the definition file used to generate a DLL when linking.
Information about the DLL -LIBRARY demo.dll +LIBRARY demo.dll DESCRIPTION DEMO.DLL The following are EXPORTed functions. -EXPORTS + +EXPORTS This part concerns the run-time. It initializes the run-time and reclaim Eiffel objects. - + ;System init_rt reclaim_rt The exported for the BAR class: -; CLASS [BAR] +; CLASS [BAR] get_string print_bar The exported for the ROOT_CLASS class: -; CLASS [ROOT_CLASS] +; CLASS [ROOT_CLASS] make foo test_bar diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/index.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/index.wiki index 0f11d0c0..9956da8d 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/index.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/dynamic-library-generation/index.wiki @@ -1,11 +1,13 @@ [[Property:title|Dynamic library generation]] [[Property:weight|-12]] [[Property:uuid|201551d5-84af-f1ee-deed-b599d4f6e64a]] -* [[Dynamic library generation: Introduction|Introduction]] -* [[Dynamic library builder|Dynamic library builder]] -* [[Definition file|Definition file]] -* [[Dynamic library: Generated files|Generated files]] - +The Eiffel compiler offers the possibility to generate a '''dynamic shared library''' based on the system. + +Thanks to this dynamic library, it is possible to call Eiffel features from a C program, by using the real names of the features. + +In other words, the user can generate a DLL ''(*.dll)'' using features of the system on windows, and/or a shared library ''(*.so)'' on Unix. + +For that, the user has first to describe what he wants to export in his dynamic library. This is done via a definition file ''(*.def)'', which specifies what features should be exported. A [[Dynamic library builder|wizard]] helps build the definition file, which makes this step very intuitive. The second step is to select the definition file in the [[Advanced Options|project settings]] to take this definition file into account. This done, the next compilation of the system will yield [[Dynamic library: Generated files|C files]] that can be used to create the shared library. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-commands.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-commands.wiki index 4ecdb249..6f79f396 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-commands.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-commands.wiki @@ -1,11 +1,11 @@ [[Property:title|Breakpoint commands]] [[Property:weight|2]] [[Property:uuid|3631e866-0acd-005d-b1f5-f43377b6e27f]] -Located in the '''debug''' menu and the '''project''' toolbar, these three commands allow to change the state of set [[Breakpoints: Introduction|breakpoints]] in the system. +Located in the '''debug''' menu and the '''project''' toolbar, three commands allow you to change the state of set [[Breakpoints|breakpoints]] in the system. -Enable breakpoints ( [[Image:16x16--breakpoints-enable-icon]] ), disable breakpoints ( [[Image:16x16--breakpoints-disable-icon]] ) and remove breakpoints ( [[Image:breakpoints-delete-icon]] ) have all global and local actions. Left-clicking on them has a global action: all set breakpoints of the system will be respectively enabled, disabled, or discarded. However, it is also possible to [[Pick-and-drop mechanism|drop]] a feature or a class onto them, in which case only set breakpoints of the feature/class will be affected. +Enable breakpoints ( [[Image:16x16--breakpoints-enable-icon]] ), disable breakpoints ( [[Image:16x16--breakpoints-disable-icon]] ) and remove breakpoints ( [[Image:breakpoints-delete-icon]] ) all have global and local actions. Left-clicking on them has a global action: all breakpoints currently set in the system will be respectively enabled, disabled, or discarded. However, it is also possible to [[Pick-and-drop mechanism|drop]] a feature or a class onto them, in which case only set breakpoints of the feature/class will be affected. -Note that these commands work only on set breakpoints (that is, enabled or disabled breakpoints). Therefore, discarded breakpoints cannot be set again thanks to these commands. +Note that these commands work only on set breakpoints (that is, enabled or disabled breakpoints). Therefore, discarded breakpoints cannot be set again with these commands. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-editing.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-editing.wiki index ace7ace6..7417c321 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-editing.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-editing.wiki @@ -1,39 +1,39 @@ [[Property:title|Breakpoint editing]] [[Property:weight|1]] [[Property:uuid|1ac830ab-7600-8e52-2351-c515bcc31d41]] -In all flat views ( [[Feature formatters: Flat view|feature flat view]] and [[Class formatters: Flat view|class flat view]] ), a margin is displayed on the left of the editor. [[Breakpoints: Introduction|Breakpoints]] are there symbolized as circles, of a different appearance depending on their state: enabled ( [[Image:bp-enabled-icon]] ), disabled ( [[Image:bp-disabled-icon]] ) or not set ( [[Image:bp-slot-icon]] ). A small question mark in the circle ( [[Image:bp-enabled-conditional-icon]] , [[Image:bp-disabled-conditional-icon]] )indicates [[Breakpoint menu|conditional breakpoints]] . +In all flat views ( [[Feature formatters: Flat view|feature flat view]] and [[Class formatters: Flat view|class flat view]] ), a margin is displayed on the left of the editor. [[Breakpoints|Breakpoints]] are symbolized there as circles, with different looks depending on their state: enabled ( [[Image:bp-enabled-icon]] ), disabled ( [[Image:bp-disabled-icon]] ) or not set ( [[Image:bp-slot-icon]] ). A small question mark in the circle ( [[Image:bp-enabled-conditional-icon]] , [[Image:bp-disabled-conditional-icon]] ) indicates [[Breakpoint menu|conditional breakpoints]] . Right-clicking on any breakpoint pops up a context menu: -
[[Image:breakpoint-context-menu]]
+[[Image:breakpoint-context-menu]] -The first line provides the breakpoint slot index of the selected breakpoint(i.e: the one used in call stack or exception trace output).
-Clicking one of the three first entries of the context menu changes the state of the breakpoint that was right-clicked. The last entry ( '''Run to breakpoint''') launches the debugged application so that it will stop as soon as the selected breakpoint is encountered, as if the breakpoint had been enabled.
+The first line provides the breakpoint slot index of the selected breakpoint (i.e: the one used in call stack or exception trace output).
+Clicking one of the three first entries of the context menu changes the state of the breakpoint that was right-clicked. The last entry ('''Run to This Point''') launches the debugged application so that it will stop as soon as the selected breakpoint is encountered, as if the breakpoint had been enabled.
-"Edit This Breakpoint" allows the user to edit the parameters of the breakpoint (condition, hit count, when hits actions...) thanks to the breakpoint dialog. This dialog provides on hte first tab "Context": access to the associated tags, condition, and hit count control. And on the second tab, it allows to associate "When hits..." action(s) to the breakpoint. -
+"Edit This Breakpoint" allows you to edit the parameters of the breakpoint (condition, hit count, when hits actions...) through the breakpoint dialog. On the first tab, '''Context''', the breakpoint dialog provides access to the associated tags, condition, and hit count control. And on the second tab, it allows you to associate '''When hits...''' action(s) with the breakpoint. + {| |- | -Context's tab - [[Image:breakpoint-dialog-context|Context's tab]] +'''Context''' tab + [[Image:breakpoint-dialog-context|Context tab]] | -When hits action 's tab - [[Image:breakpoint-dialog-when-hits-action|When hits... 's tab]] +'''When hits ...''' action tab + [[Image:breakpoint-dialog-when-hits-action|When hits... tab]] |} -
-* The tags allow to identified a collection of breakpoints, either from the [[Breakpoint information command|breakpoints tool]] , or even in the parameters of "When hits .." actions.
-Note that any existing breakpoint can be referenced by an implicit tag with ''"'''bp:'''cluster.{CLASS}.feature@index"'' (cluster is not mandatory).
-{{sample|For instance "'''bp:'''elks.{LINKED_LIST}.extend@2"}} +Tags allow you to identify a collection of breakpoints, either from the [[Breakpoint information command|breakpoints tool]] , or in the parameters of "When hits .." actions.
+Any existing breakpoint can be referenced by an implicit tag with the form: ''"'''bp:'''cluster.{CLASS}.feature@index"'' (cluster is not mandatory).
-* the "Condition" allows the user to set a condition for stopping. -* the "Hit count" allows the user to set a condition on hitcount for stopping. -* And the "When Hits..." allows to associate specific actions to the breakpoint: +{{sample|A sample breakpoint tag: "'''bp:'''elks.{LINKED_LIST}.extend@2"}} + +* the "Condition" allows you to set a condition for stopping. +* the "Hit count" allows you to set a condition on hitcount for stopping. +* And the "When Hits..." allows you to associate specific actions with the breakpoint: ** Print message: display the expanded message to the output (there are predefined variables, and you can also evaluate expressions). -** Disable/Restore Assertion Checking: this might be useful to desactivate assertion checking on a specific part of the execution. +** Disable/Restore Assertion Checking: this might be useful to deactivate assertion checking on a specific part of the execution. ** Record Execution: start or stop the execution recording (cf: [[Execution record and replay|Execution recording and replay]] ) ** Enable/Disable Breakpoints: either use tags or implicit tags (ex: ''"bp:elks.{LINKED_LIST}.extend@2"''), to reference a set of existing breakpoints. This can be pretty useful to enable a breakpoint only if the execution takes a specific execution path. ** Reset Hits count @@ -41,17 +41,17 @@ Note that any existing breakpoint can be referenced by an implicit tag with ''"' -"Edit Condition" allows the user to set a condition for stopping, it opens the same dialog as "EditThis Breakpoint", but focus on the "condition" field. +"Edit Condition" allows you to set a condition for stopping, it opens the same dialog as "Edit This Breakpoint", but focus on the "condition" field. -
[[Image:breakpoint-dialog-condition]]
+[[Image:breakpoint-dialog-condition]] -"Hit count" allows the user to set a condition on hitcount for stopping +"Hit count" allows you to set a condition on hitcount for stopping -
[[Image:breakpoint-dialog-hit-count]]
+[[Image:breakpoint-dialog-hit-count]] -"When hits ..." allows the user to do an action when we actually stopped on this breakpoint. This can be for instance `print message'. +"When hits ..." allows you to perform an action, print a message for example, when execution stops on this breakpoint. -
[[Image:breakpoint-dialog-when-hits]]
+[[Image:breakpoint-dialog-when-hits]] {{seealso| [[Breakpoint commands|Breakpoint commands]], [[Breakpoint information command|Breakpoint information command]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-information-command.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-information-command.wiki index 6f602a1c..e6575197 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-information-command.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/breakpoint-information-command.wiki @@ -3,19 +3,22 @@ [[Property:uuid|9fa30dd2-231f-c1f2-4139-f8e90df0e77f]] The breakpoint information command, located in the '''debug''' menu and in the '''project''' toolbar ( [[Image:tool-breakpoints-icon]] ), displays the list of all set breakpoints in the system (enabled or disabled). -
Display all breakpoints in a grid
- [[Image:breakpoints-list]]
+Display all breakpoints in a grid:
+ +[[Image:breakpoints-list]] Note: the * shows that the breakpoint has a [[Breakpoint menu|condition]] .
Note: you can edit the selected breakpoint by double clicking on it, or pressing [enter] which show the menu.
Note: you can disable/enable the selected breakpoint(s) by pressing [space].
Note: you can sort by clicking the column, especially the first column which provide tree, flat or sorted view. -
Display all breakpoints in a list
- [[Image:breakpoints-list-flat]]
+Display all breakpoints in a list:
-
Display all breakpoints in a list filtered by a tag using button [[Image:breakpoints-list-filter-button]]
- [[Image:breakpoints-list-filter]]
+[[Image:breakpoints-list-flat]] + +Display all breakpoints in a list filtered by a tag using button [[Image:breakpoints-list-filter-button]] :
+ +[[Image:breakpoints-list-filter]] {{seealso|
[[Breakpoint commands|Breakpoints commands]]
diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/index.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/index.wiki index 55eefefe..d215a26b 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/index.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/breakpoints/index.wiki @@ -1,11 +1,18 @@ [[Property:title|Breakpoints]] [[Property:weight|-14]] [[Property:uuid|6ed5890a-9b23-210a-5640-cee348d6e27e]] -* [[Breakpoints: Introduction|Introduction]] -* [[Breakpoint editing|Breakpoint menu]] -* [[Breakpoint commands|Breakpoint commands]] [[Image:16x16--breakpoints-enable-icon]] [[Image:16x16--breakpoints-disable-icon]] [[Image:breakpoints-delete-icon]] -* [[Breakpoint information command|Breakpoint information command]] [[Image:tool-breakpoints-icon]] -* [[Breakpoint menu|Conditional breakpoints]] +Breakpoints are entities that stop a debugged application. Breakpoints can be put at the beginning of each execution line, so that it is possible to see the context in which the line is executed before executing it. + +In EiffelStudio, breakpoints are represented as circles in the left margin of flat views (both [[Feature formatters: Flat view|feature flat view]] and [[Class formatters: Flat view|class flat view]] ). Breakpoints can be in three different states: enabled ( [[Image:bp-enabled-icon]] ), disabled ( [[Image:bp-disabled-icon]] ), or not set ( [[Image:bp-slot-icon]] ). Only enabled breakpoints will stop the application when they are encountered. By default, breakpoints are not set. Disabled breakpoints are useful to temporarily discard a breakpoint, while keeping the possibility to put it back quickly. Enabled and disabled breakpoints can have an associated an associated [[Breakpoint menu|condition]] . They are then shown as [[Image:bp-enabled-conditional-icon]] and [[Image:bp-disabled-conditional-icon]] . + +Left-clicking on a breakpoint in a flat view changes the state of the breakpoint: it switches from not set to enabled, from enabled to not set, and from disabled to enabled. Removing a conditional breakpoint discards its condition. + +The [[Breakpoint editing|breakpoint menu]] lets you change the state of one breakpoint, whereas the [[Breakpoint commands|breakpoint commands]] let you change the state of several breakpoints at a time. The [[Breakpoint information command|breakpoint information command]] shows the state of all set breakpoints. + +{{note|Breakpoints cannot be set in all features. In particular, breakpoints cannot be set in external features or attributes.
+However, breakpoints can now be set in assertions (require and ensure). }} + +{{tip|Under Windows, breakpoints can be set on-the-fly while the application is running. }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/execute-one-line-time.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/execute-one-line-time.wiki index 6722e7b8..102a4c73 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/execute-one-line-time.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/execute-one-line-time.wiki @@ -7,7 +7,7 @@ If an application was stopped, it attempts to execute the instruction located on It is accessible through the '''project''' toolbar ( [[Image:debug-step-over-icon]] ) or through the '''debug''' menu. -{{seealso| [[Eiffel Debugger Execution: Introduction|Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} +{{seealso| [[Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/index.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/index.wiki index 0c3372b3..07080938 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/index.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/index.wiki @@ -1,16 +1,25 @@ [[Property:title|Execution commands]] [[Property:weight|-15]] [[Property:uuid|098e4d2b-18c5-6933-fe42-2d55e427f5fa]] -* [[Eiffel Debugger Execution: Introduction|Introduction]] -* [[Image:debug-run-icon]] [[Run and stop at breakpoints|Run and debug]] -* [[Image:debug-run-icon]] [[Run with arguments|Run with arguments]] -* [[Image:debug-run-without-breakpoint-icon]] [[Run without breakpoints|Run regardless of breakpoints]] -* [[Image:debug-run-finalized-icon]] [[Run a finalized executable|Run a finalized executable]] -* [[Image:debug-step-into-icon]] [[Step into a feature|Step into a feature]] -* [[Image:debug-step-over-icon]] [[Execute one line at a time|Execute an instruction line]] -* [[Image:debug-step-out-icon]] [[Step out of a feature|Step out of a feature]] -* [[Image:debug-pause-icon]] [[Pause an application|Pause the execution]] -* [[Image:debug-stop-icon]] [[Stop a debugged application|Stop the debugged application]] +While working on a project, you may want to launch it to see if it behaves as expected, and if not to find out where the problem is located. + +There are several ways to launch the application you are working on from EiffelStudio: +* [[Run a finalized executable|Run a finalized executable]] [[Image:debug-run-finalized-icon]], where no debug is possible. +* Launch an application and enable its debugging +** [[Run and stop at breakpoints|Launch and stop]] [[Image:debug-run-icon]] as soon as the application encounters a [[Breakpoints|breakpoint]] +** [[Run without breakpoints|Launch and do not stop]] [[Image:debug-run-without-breakpoint-icon]] when encountering breakpoints + +* Execute one step in the application +** [[Step into a feature|Step into a feature]] [[Image:debug-step-into-icon]] +** [[Execute one line at a time|Execute one line]] [[Image:debug-step-over-icon]] +** [[Step out of a feature|Exit a feature]] [[Image:debug-step-out-icon]] + + +Once the application is launched in debug mode, you can [[Pause an application|pause]] [[Image:debug-pause-icon]] it at any time to see its current state or you can [[Stop a debugged application|stop its execution]] [[Image:debug-stop-icon]] completely. + +All these commands are accessible either through the '''debug''' menu, or through the '''project''' toolbar. + +{{seealso| The Eiffel [[Compiler|Compiler]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/pause-application.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/pause-application.wiki index f293644d..8b4a31ad 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/pause-application.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/pause-application.wiki @@ -7,6 +7,6 @@ This gives access to dynamic information concerning the application, such as the It is accessible through the '''project''' toolbar ( [[Image:debug-pause-icon]] ) or through the '''debug''' menu. -{{seealso| [[Eiffel Debugger Execution: Introduction|Execution commands]] }} +{{seealso| [[Execution commands]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-and-stop-breakpoints.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-and-stop-breakpoints.wiki index 57e06366..64af16be 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-and-stop-breakpoints.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-and-stop-breakpoints.wiki @@ -1,11 +1,11 @@ [[Property:title|Run and stop at breakpoints]] [[Property:weight|-15]] [[Property:uuid|16310d6f-9ab8-e27c-5802-059d8fc80914]] -This command launches an application compiled in Work Bench mode. The application will stop as soon as a [[Breakpoints: Introduction|breakpoint]] is encountered, or when an exception occurs. +This command launches an application compiled in Work Bench mode. The application will stop as soon as a [[Breakpoints|breakpoint]] is encountered, or when an exception occurs. It is accessible through the '''project''' toolbar ( [[Image:debug-run-icon]] ) or through the '''debug''' menu. -{{seealso| [[Eiffel Debugger Execution: Introduction|Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} +{{seealso| [[Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-finalized-executable.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-finalized-executable.wiki index 1cbb3031..c7c6ef5b 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-finalized-executable.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-finalized-executable.wiki @@ -7,7 +7,7 @@ No debugging is possible with this command, but it lets you test the real speed It is accessible through the '''project''' toolbar ( [[Image:debug-run-finalized-icon]] ) or through the '''project''' menu. -{{seealso| [[Eiffel Debugger Execution: Introduction|Execution commands]], [[Generating executables|Compiling in finalized mode]] }} +{{seealso| [[Execution commands]], [[Generating executables|Compiling in finalized mode]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-without-breakpoints.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-without-breakpoints.wiki index 2ae92750..e07c3c59 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-without-breakpoints.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/run-without-breakpoints.wiki @@ -1,11 +1,11 @@ [[Property:title|Run without breakpoints]] [[Property:weight|-12]] [[Property:uuid|1f619bce-a3c7-5984-d3e6-4c5dceabf53d]] -This command launches an application compiled in Workbench mode. The application will not stop when a [[Breakpoints: Introduction|breakpoint]] is encountered. However, it stops when an exception occurs. +This command launches an application compiled in Workbench mode. The application will not stop when a [[Breakpoints|breakpoint]] is encountered. However, it stops when an exception occurs. It is accessible through the '''project''' toolbar ( [[Image:debug-run-without-breakpoint-icon]] ) or through the '''debug''' menu. -{{seealso| [[Eiffel Debugger Execution: Introduction|Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} +{{seealso| [[Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/step-feature.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/step-feature.wiki index 741fbaad..7f07b991 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/step-feature.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/step-feature.wiki @@ -7,7 +7,7 @@ If an application was stopped, it attempts to enter the feature located on the e It is accessible through the '''project''' toolbar ( [[Image:debug-step-into-icon]] ) or through the '''debug''' menu. -{{seealso| [[Eiffel Debugger Execution: Introduction|Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} +{{seealso| [[Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/step-out-feature.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/step-out-feature.wiki index 0e94aab1..9e9ce964 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/step-out-feature.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/step-out-feature.wiki @@ -7,7 +7,7 @@ If an application was stopped, it attempts to exit the feature where the applica It is accessible through the '''project''' toolbar ( [[Image:debug-step-out-icon]] ) or through the '''debug''' menu. -{{seealso| [[Eiffel Debugger Execution: Introduction|Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} +{{seealso| [[Execution commands]], [[Generating executables|Compiling in Workbench mode]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/stop-debugged-application.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/stop-debugged-application.wiki index b0cb8567..2ccb4dc3 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/stop-debugged-application.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/execution-commands/stop-debugged-application.wiki @@ -5,7 +5,7 @@ This command kills the debugged application, if any. This stops the debugging se It is accessible through the '''project''' toolbar ( [[Image:debug-stop-icon]] ) or through the '''debug''' menu. -{{seealso| [[Eiffel Debugger Execution: Introduction|Execution commands]] }} +{{seealso| [[Execution commands]] }} diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/index.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/index.wiki index 13788e56..ac2b1a0b 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/index.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/debugger/index.wiki @@ -1,22 +1,18 @@ [[Property:title|Debugger]] [[Property:weight|-8]] [[Property:uuid|31c4857e-f19e-e9e3-b7db-d6c30515277f]] -* [[Debugger: Introduction|Introduction]] -* [[Execution commands|Execution commands]] -* [[Breakpoints|Breakpoint management]] -* [[Call stack tool|Call stack information]] -* [[Execution record and replay|Execution replay mechanism]] -* [[Object tool|Objects tool (stack information)]] -* [[Object Viewer (also known as Expanded display)|Object viewer tool (also known as expanded display)]] +A debugger is a tool that allows you to [[Execution commands|run]] an application and view its state at any moment. This includes having information concerning the current [[Callstack tool: Introduction|call stack]] and the [[Objects tool: Introduction|state of objects]] of the system, i.e. the values of their attributes. This kind of information can be used to spot objects that have invalid states, to see the consequences of the execution of a feature over an object state, and so on. + +The features of the EiffelStudio debugger include: +* Stopping the application in frozen features as well as in melted features +* [[Step into a feature|Stepping into]] features, [[Execute one line at a time|executing them one line at a time]] , or [[Step out of a feature|stepping out]] of them +* Setting [[Breakpoints|breakpoints]] on-the-fly, while the execution is running * [[Expression evaluation|Dynamic evaluation of expressions]] -* [[Debuggee's Object Storage|Debuggee object storage]] -* [[Threads tool|Threads information]] -* [[Exceptions handling tool|Exception caching handler tool]] +* [[Breakpoints|Conditional breakpoints]] * [[Stack overflow prevention|Stack overflow prevention]] -* [[Debugging tips with the objects grid view|Debugging tips with the objects grid view]] -* [[Debugging preferences|Debugging preferences]] -* [[Debugging limitations|Debugging limitations]] - +* Classes can implement the [[Debug output|debug_output interface]] and have their objects display a string in the debugger +* Execution can be recorded to be replayed when execution is paused, use the [[Execution record and replay|execution replay mechanism]] from the call stack tool interface, and have the debugging tools updated. +* Debuggee objects can be stored/retrieved from the debugger, check the [[Debuggee's Object Storage|debuggee object storage mechanism]] available from the objects tool, and watch tools' toolbar. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/advanced-options/index.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/advanced-options/index.wiki index 21f1c16d..2f247963 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/advanced-options/index.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/advanced-options/index.wiki @@ -17,7 +17,7 @@ * Multithreaded: generates a multithreaded application. This option cannot be changed during the development of your project and has to be set correctly at the first compilation of your system. (C code generation mode only) * Old Verbatim Strings: Use the old format for verbatim strings * Platform: override platform value used for checking conditions, useful for cross compilation -* Shared Library Definition: lets you specify a `file_name.def' as the file where the Eiffel compiler will look when it tries to generate the exported functions of the shared library you are developing (C code generation mode only). To have more information concerning definition files, see the [[Dynamic library generation: Introduction|Dynamic library builder reference]] . +* Shared Library Definition: lets you specify a `file_name.def' as the file where the Eiffel compiler will look when it tries to generate the exported functions of the shared library you are developing (C code generation mode only). To have more information concerning definition files, see the [[Dynamic library generation]] . * Library Root: Absolute path to use as base for relative paths. If this is not defined, the path to the configuration file will be used. ==.NET Options== @@ -27,6 +27,7 @@ * .NET Naming Convention: See [[Advanced Options|Class and feature naming]] * IL Verifiable: in the .NET world, verifiability is important. This is the only way to ensure that an application is not going to crash or to crash your system by accessing not authorized memory locations. Due to some semantic differences between Eiffel and.NET, our code generation is not always verifiable for performance reasons. If you want your code to be verifiable, you need to select this option. The compiler will then generate a code that will be slightly slower. * CLS Compliant: mark generated assemblies as CLS compliant + * Metadata Cache Path: Location where information about external assemblies is stored. * Classes per Module: Number of classes generated per .NET module during incremental compilation. Increasing this value will slow down the incremental recompilation, but speed up the time to load the assembly while debugging in workbench mode. * .NET Runtime Version: .NET version to use @@ -160,6 +161,7 @@ This table shows how the class name generation is affected by the naming options | MyNameSpace | MyNameSpace.Cursor |- + | no | no | yes