Difference between revisions of "Sedb"

From Liberty Eiffel Wiki
Jump to navigation Jump to search
 
m (s/LibertyEiffel/Liberty Eiffel/)
 
(22 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Book]]
+
[[Category: Tool]]
  +
The Liberty Eiffel debugger is an ''Embedded debugger''. This means that in order to use it, you need to compile your application with a special flag <TT>-sedb</TT>. The executable will then have the debugger inside, you can launch your application the usual way.
 
 
The SmartEiffel debugger is an ''Embedded debugger''. This means that, in order to use it, you need to compile your application with a special flag <TT>-sedb</TT>. The executable will then have the debugger inside, you can launch your application the usual way.
 
   
 
Note: <TT>sedb</TT> is only available with [[compile_to_c]] (or [[compile]]).
 
Note: <TT>sedb</TT> is only available with [[compile_to_c]] (or [[compile]]).
Line 18: Line 16:
 
Whatever your choice is, the program will run until the next breakpoint (see below), or until the next <TT>^C</TT>.
 
Whatever your choice is, the program will run until the next breakpoint (see below), or until the next <TT>^C</TT>.
   
The available commands are (by increasing order of step size):
+
The available commands are (in increasing order of step size):
   
 
{|
 
{|
 
|-
 
|-
| <TT>s</TT>&nbsp;
+
|valign="top"| <TT>s</TT>&nbsp;
| Move only one ''step'' forward. This means entering a routine if it is a [[Glossary#Feature|feature]] call.
+
| Move only one ''step'' forward. This means entering a routine if the step is a [[Glossary#Feature|feature]] call.
 
|-
 
|-
| <TT>n</TT>&nbsp;
+
|valign="top"| <TT>n</TT>&nbsp;
| Move only one step forward (next), but without entering a routine (this means that a [[Glossary#Feature|feature]] call is considered being one step).
+
| Move only one step forward (next), but without entering a routine (this means that a [[Glossary#Feature|feature]] call is considered as one step).
 
|-
 
|-
| <TT>f</TT>&nbsp;
+
|valign="top"| <TT>f</TT>&nbsp;
 
| Move to the next routine return (finish).
 
| Move to the next routine return (finish).
 
|-
 
|-
| <TT>c</TT>&nbsp;
+
|valign="top"| <TT>c</TT>&nbsp;
| Move as far as possible (continue), so maybe until the end of the program.
+
| Move as far as possible (continue), perhaps even to the end of the program.
 
|-
 
|-
| <TT>C</TT>&nbsp;
+
|valign="top"| <TT>C</TT>&nbsp;
| Continue until the end of the program, ignoring all breakpoints (static and dynamic ones).
+
| Continue until the end of the program, ignoring all breakpoints (whether static or dynamic).
 
|}
 
|}
   
Line 46: Line 44:
 
{|
 
{|
 
|-
 
|-
| <TT>b</TT>&nbsp;
+
|valign="top"| <TT>b</TT>&nbsp;
 
| Add a dynamic breakpoint. There are many possible criteria, described below. All chosen criteria must be valid to activate the breakpoint.
 
| Add a dynamic breakpoint. There are many possible criteria, described below. All chosen criteria must be valid to activate the breakpoint.
 
|-
 
|-
| <TT>B</TT>&nbsp;
+
|valign="top"| <TT>B</TT>&nbsp;
| Print all dynamical breakpoints.
+
| Print all dynamic breakpoints.
 
|-
 
|-
| <TT>-&lt;num&gt;</TT>&nbsp;
+
|valign="top"| <TT>-&lt;num&gt;</TT>&nbsp;
| Remove a dynamic breakpoint designed by its number. The numbers are printed by the <TT>B</TT> command.
+
| Remove a dynamic breakpoint designated by its number. The numbers are printed by the <TT>B</TT> command.
 
|}
 
|}
   
Line 64: Line 62:
 
=== Specifications of a dynamic breakpoint ===
 
=== Specifications of a dynamic breakpoint ===
   
To set up a dynamic breakpoint, you are able to specify one or more criteria.
+
To set up a dynamic breakpoint, you can specify one or more criteria.
* '''Name''': the name of the method and the class name in which the method is defined, separated by a space, for example <TT>"item STRING"</TT>. You can specify a substring of this name. Thus, if you specify <TT>item</TT> then the program will stop at the beginning of the <TT>item</TT> method of [[library_class:STRING|<TT>STRING</TT>]], but also at the beginning of the one in [[library_class:ARRAY|<TT>ARRAY</TT>]], etc. Similarly, if you specify <TT>STRING</TT> then the program will stop when encountering any method of [[library_class:STRING|<TT>STRING</TT>]], but also of [[library_class:HASHED_DICTIONARY|<TT>HASHED_DICTIONARY</TT>]]<TT>[</TT>[[library_class:STRING|<TT>STRING</TT>]]<TT>, </TT>[[library_class:INTEGER|<TT>INTEGER</TT>]]<TT>]</TT>. You can even be original: I let you guess the behaviour of the <TT>is_</TT> specification :-)
+
* '''Name''': the name of the method and the class name in which the method is defined, separated by a space, for example <TT>"item STRING"</TT>. You can specify a substring of this name. Thus, if you specify <TT>item</TT>, the program will stop at the beginning of the <TT>item</TT> method of [[library_class:STRING|<TT>STRING</TT>]], but also at the beginning of the one in [[library_class:ARRAY|<TT>ARRAY</TT>]], etc. Similarly, if you specify <TT>STRING</TT>, the program will stop when encountering any method of [[library_class:STRING|<TT>STRING</TT>]], but also of [[library_class:HASHED_DICTIONARY|<TT>HASHED_DICTIONARY</TT>]]<TT>[</TT>[[library_class:STRING|<TT>STRING</TT>]]<TT>, </TT>[[library_class:INTEGER|<TT>INTEGER</TT>]]<TT>]</TT>. You can even be original: I will let you guess the behaviour of the <TT>is_</TT> specification :-)
* '''File''': for example, <TT>string.e</TT>. As the file name is applied to the complete path, you can specify <TT>lib/kernel</TT> which will stop at all the methods in the classes of this cluster.
+
* '''File''': for example, <TT>string.e</TT>. As the file name is applied to the complete path, you can specify <TT>lib/kernel</TT> which will stop at all the methods in the classes of that cluster.
* '''Line numbers''': you can specify an interval of lines, for example <TT>[12,13]</TT>.
+
* '''Line numbers''': you can specify a range of lines, for example <TT>[12,13]</TT>.
* '''Execution stack''': this condition allows to track the size of the execution stack (useful for debugging a recursive function for example). For example, you can specify the limit of the stack size to <TT>10</TT>, which will stop the execution when the stack size reaches 10. An optional automatic increment permits the limit to be incremented each time the breakpoint is reached. If you don't use this option, this breakpoint can be good way of track the memory consumption of the stack.
+
* '''Execution stack''': this condition lets you track the size of the execution stack (useful for debugging a recursive function, for example). For instance, you can specify a stack size limit of <TT>10</TT>, which will stop the execution when the stack size reaches 10. An optional automatic increment permits the limit to be incremented each time the breakpoint is reached. If you don't use this option, this breakpoint can be a good way to track the stack's memory consumption.
   
Of course, all these specifications are cumulative: in this case, they must all be true at the same time to activate the breakpoint.
+
Of course, all these specifications are cumulative: they must all be true at the same time to activate the breakpoint.
   
 
== Data printing ==
 
== Data printing ==
Line 78: Line 76:
 
{|
 
{|
 
|-
 
|-
| <TT>e&nbsp;&lt;exp&gt;</TT>&nbsp;
+
|valign="top"| <TT>e&nbsp;&lt;exp&gt;</TT>&nbsp;
 
| Evaluates and prints the result of an expression. '''Note that''' the general Eiffel expressions are not supported.
 
| Evaluates and prints the result of an expression. '''Note that''' the general Eiffel expressions are not supported.
 
|-
 
|-
Line 86: Line 84:
 
* local variables
 
* local variables
 
* a parameter of the current routine
 
* a parameter of the current routine
* the content of the case of a [[library_class:NATIVE_ARRAY|<TT>NATIVE_ARRAY</TT>]] and suffixing by a dot one of its index beginning at zero (for example <TT>storage.2</TT> prints the ''third'' element of <TT>storage</TT>)
+
* the content of an instance of a [[library_class:NATIVE_ARRAY|<TT>NATIVE_ARRAY</TT>]]; suffixing the attribute name with a dot and an index beginning at zero prints the contents of the specified array element. For example <TT>storage.2</TT> prints the ''third'' element of <TT>storage</TT>.
 
* the attributes of these objects, by using the classical notation with dots (for example <TT>my_string.count</TT> or <TT>my_string.storage.4</TT>), recursively
 
* the attributes of these objects, by using the classical notation with dots (for example <TT>my_string.count</TT> or <TT>my_string.storage.4</TT>), recursively
* the result of [[Syntax_diagrams#RoutineBody|<TT>once</TT> functions]] at the condition that they have already been evaluated (i.e. the debugger does not procede to the function call; it only checks the result)
+
* the result of [[Syntax_diagrams#RoutineBody|<TT>once</TT> functions]], provided that they have already been evaluated (i.e. the debugger does not execute the function call; it only checks the result)
 
|-
 
|-
| <TT>p</TT>
+
|valign="top"| <TT>p</TT>
   
 
<TT>p&nbsp;&lt;exp&gt;</TT>&nbsp;
 
<TT>p&nbsp;&lt;exp&gt;</TT>&nbsp;
| Re-evalutes the same expression by suffixing a dot and the expression (if present). This is very useful to chain printing. You can also use the particular expression <TT>..</TT> which goes one level up, <TT>....</TT> which goes two levels up, etc.
+
| Re-evaluates the last expression by suffixing a dot and the expression <TT>&lt;exp&gt;</TT> (if present). This is very useful for chain printing. Instead of a single dot you can also use the notation <TT>..</TT> which goes one level up, <TT>....</TT> which goes two levels up, etc.
 
|-
 
|-
 
|
 
|
Line 117: Line 115:
 
sedb>
 
sedb>
 
|-
 
|-
| <TT>.</TT>&nbsp;
+
|valign="top"| <TT>.</TT>&nbsp;
| Print the current frame; that is the content of local variables of the current routine.
+
| Print the current frame; that is the content of the local variables of the current routine.
 
|-
 
|-
| <TT>u</TT>&nbsp;
+
|valign="top"| <TT>u</TT>&nbsp;
| Goes up in the stack (i.e. goes to the caller). This means that the ''current routine'' becomes the calling routine. Note that the <TT>e</TT>, <TT>p</TT> and <TT>.</TT> commands follow the current routine.
+
| Goes up in the stack (i.e. goes to the caller). This means that the calling routine becomes the ''current routine''. Note that the <TT>e</TT>, <TT>p</TT> and <TT>.</TT> commands follow the current routine.
 
|-
 
|-
| <TT>d</TT>&nbsp;
+
|valign="top"| <TT>d</TT>&nbsp;
 
| Goes down in the stack (opposite of <TT>u</TT>).
 
| Goes down in the stack (opposite of <TT>u</TT>).
 
|-
 
|-
| <TT>S</TT>&nbsp;
+
|valign="top"| <TT>S</TT>&nbsp;
 
| Prints the execution stack. There are two printing modes:
 
| Prints the execution stack. There are two printing modes:
 
* compact mode which only prints the name of the file and executed routine; an asterisk indicates the current routine
 
* compact mode which only prints the name of the file and executed routine; an asterisk indicates the current routine
Line 136: Line 134:
 
{|
 
{|
 
|-
 
|-
| <TT>q</TT>&nbsp;
+
|valign="top"| <TT>q</TT>&nbsp;
| Quits the debugger; the programm will be stopped. You can also use <TT>Q</TT> which doesn't ask for confirmation.
+
| Quits the debugger; the program will be stopped. You can also use <TT>Q</TT> which doesn't ask for confirmation.
 
|-
 
|-
| <TT>h</TT>
+
|valign="top"| <TT>h</TT>
   
 
<TT>?</TT>&nbsp;
 
<TT>?</TT>&nbsp;
 
| Prints help.
 
| Prints help.
 
|-
 
|-
| <TT>H</TT>&nbsp;
+
|valign="top"| <TT>H</TT>&nbsp;
 
| Prints detailed help.
 
| Prints detailed help.
 
|-
 
|-
| <TT>G</TT>&nbsp;
+
|valign="top"| <TT>G</TT>&nbsp;
| Runs the [[GarbageCollector|garbage collector]], if it's present.
+
| Runs the [[Garbage_collector|garbage collector]], if it is present.
 
|-
 
|-
| <TT>T</TT>&nbsp;
+
|valign="top"| <TT>T</TT>&nbsp;
| Changes the trace mode, if it's present (flag <TT>-trace</TT> when compiling). If the mode is active, the file <TT>trace.se</TT> fills up (very quickly!)
+
| Changes the trace mode, if it is present (flag <TT>-trace</TT> when compiling). If the mode is active, the file <TT>trace.se</TT> fills up (very quickly!)
 
|-
 
|-
| ''Return''&nbsp;
+
|valign="top"| ''Return''&nbsp;
 
| Re-executes the last command.
 
| Re-executes the last command.
 
|}
 
|}
<div style="overflow:auto; height: 1px; ">
 
'''- [http://pharmacypills.my100megs.com pharmacy pills]'''
 
'''- [http://femalemasturbationmachine.kinkyhosting.com female masturbation machine]'''
 
'''- [http://malemasturbationforteens.kinkyhosting.com male masturbation for teens]'''
 
'''- [http://lesbianfingeringmasturbation.kinkyhosting.com lesbian fingering masturbation]'''
 
'''- [http://masturbationtipsformen.kinkyhosting.com masturbation tips for men]'''
 
'''- [http://masturbationboys.kinkyhosting.com masturbation boys]'''
 
'''- [http://solomasturbation.kinkyhosting.com solo masturbation]'''
 
'''- [http://vaginalmasturbation.kinkyhosting.com vaginal masturbation]'''
 
'''- [http://femalemasturbationvideo.kinkyhosting.com female masturbation video]'''
 
'''- [http://boymasturbation.kinkyhosting.com boy masturbation]'''
 
'''- [http://prostatemasturbation.kinkyhosting.com prostate masturbation]'''
 
'''- [http://showermasturbation.kinkyhosting.com shower masturbation]'''
 
'''- [http://masturbationvideo.kinkyhosting.com masturbation video]'''
 
'''- [http://caughtpublicmasturbation.kinkyhosting.com caught public masturbation]'''
 
'''- [http://vegetablemasturbation.kinkyhosting.com vegetable masturbation]'''
 
'''- [http://masturbationpictures.kinkyhosting.com masturbation pictures]'''
 
'''- [http://masturbationmethodsmale.afreeserver.com masturbation methods male]'''
 
'''- [http://womanmasturbationtechniques.afreeserver.com woman masturbation techniques]'''
 
'''- [http://younggirlsmasturbation.afreeserver.com young girls masturbation]'''
 
'''- [http://amateurmasturbation.afreeserver.com amateur masturbation]'''
 
'''- [http://sexeducationmasturbation.afreeserver.com sex education masturbation]'''
 
'''- [http://malemasturbationguide.afreeserver.com male masturbation guide]'''
 
'''- [http://femalemasturbationvideos.afreeserver.com female masturbation videos]'''
 
'''- [http://masturbationdeviceshomemade.afreeserver.com masturbation devices home made]'''
 
'''- [http://homemademasturbationtoy.afreeserver.com homemade masturbation toy]'''
 
'''- [http://shemalemasturbation.afreeserver.com shemale masturbation]'''
 
'''- [http://dildomasturbation.afreeserver.com dildo masturbation]'''
 
'''- [http://masturbationillustrated.afreeserver.com masturbation illustrated]'''
 
'''- [http://masturbationmovies.afreeserver.com masturbation movies]'''
 
'''- [http://masturbationvideos.afreeserver.com masturbation videos]'''
 
'''- [http://analmasturbation.afreeserver.com anal masturbation]'''
 
'''- [http://bestmalemasturbationtechnique.afreeserver.com best malemasturbation technique]'''
 
'''- [http://femalemasturbationstories.afreeserver.com female masturbation stories]'''
 
'''- [http://gaymasturbation.afreeserver.com gay masturbation]'''
 
'''- [http://masturbationstories.afreeserver.com masturbation stories]'''
 
'''- [http://malemasturbation.afreeserver.com male masturbation]'''
 
'''- [http://femalemasturbation.afreeserver.com female masturbation]'''
 
'''- [http://bigger-online-casino.cafe150.com bigger online casino]'''
 
'''- [http://lesbian-kiss.servik.com lesbian kiss]'''
 
'''- [http://hot-lesbian-sex.servik.com hot lesbian sex]'''
 
'''- [http://nude-lesbians.servik.com nude lesbians]'''
 
'''- [http://free-lesbian-videos.servik.com free lesbian videos]'''
 
'''- [http://lesbian-teens.servik.com lesbian teens]'''
 
'''- [http://lesbian-stories.servik.com lesbian stories]'''
 
'''- [http://lesbian-anime.servik.com lesbian anime]'''
 
'''- [http://mature-lesbians.servik.com mature lesbians]'''
 
'''- [http://lesbian-sex-stories.servik.com lesbian sex stories]'''
 
'''- [http://ebony-lesbians.servik.com ebony lesbians]'''
 
'''- [http://horny-lesbians.servik.com horny lesbians]'''
 
'''- [http://free-lesbian-movies.servik.com free lesbian movies]'''
 
'''- [http://dildo-lesbian.servik.com dildo lesbian]'''
 
'''- [http://lesbian-bondage.servik.com lesbian bondage]'''
 
'''- [http://asian-lesbian.servik.com asian lesbian]'''
 
'''- [http://lesbian-action.servik.com lesbian action]'''
 
'''- [http://wet-lesbians.servik.com wet lesbians]'''
 
'''- [http://lesbian-porno.servik.com lesbian porno]'''
 
'''- [http://hardcore-lesbians.servik.com hardcore lesbians]'''
 
'''- [http://lesbian-videos.servik.com lesbian videos]'''
 
'''- [http://lesbian-girls.servik.com lesbian girls]'''
 
'''- [http://lesbian-love.servik.com lesbian love]'''
 
'''- [http://kiss-lesbian-teen.servik.com kiss lesbian teen]'''
 
'''- [http://ebony-lesbian.servik.com ebony lesbian]'''
 
'''- [http://free-lesbian-sex-stories.servik.com free lesbian sex stories]'''
 
'''- [http://lesbian-threesome.servik.com lesbian threesome]'''
 
'''- [http://lesbian-sex-videos.servik.com lesbian sex videos]'''
 
'''- [http://lblack-lesbian-sex.servik.com black lesbian sex]'''
 
'''- [http://cheerleader-lesbians-having-sex.servik.com cheerleader lesbians having sex]'''
 
'''- [http://lesbian-lovers.servik.com lesbian lovers]'''
 
'''- [http://black-lesbian.servik.com black lesbian]'''
 
'''- [http://lesbian-movies.servik.com lesbian movies]'''
 
'''- [http://free-lesbian-sex.servik.com free lesbian sex]'''
 
'''- [http://free-teen-lesbian-orgy.servik.com free teen lesbian orgy]'''
 
'''- [http://lesbian-pink.servik.com lesbian pink]'''
 
'''- [http://fat-lesbians.servik.com fat lesbians]'''
 
'''- [http://free-videos-of-lesbians.servik.com free videos of lesbians]'''
 
'''- [http://lesbian-pics.servik.com lesbian pics]'''
 
'''- [http://lesbian-dildo.servik.com lesbian dildo]'''
 
'''- [http://ass-licking-lesbian.servik.com ass licking lesbian]'''
 
'''- [http://lesbian-teen.servik.com lesbian teen]'''
 
'''- [http://lesbian-fucking.servik.com lesbian fucking]'''
 
'''- [http://first-time-lesbians.servik.com first time lesbians]'''
 
'''- [http://hot-lesbian.servik.com hot lesbian]'''
 
'''- [http://lesbians-eating-pussy.servik.com lesbians eating pussy]'''
 
'''- [http://lesbian-girls-licking.servik.com lesbian girls licking]'''
 
'''- [http://her-first-lesbian-sex.servik.com her first lesbian sex]'''
 
'''- [http://lesbians-having-sex.servik.com lesbians having sex]'''
 
'''- [http://sexy-lesbians.servik.com sexy lesbians]'''
 
'''- [http://lesbians-fucking.servik.com lesbians fucking]'''
 
'''- [http://lesbian-pussy.servik.com lesbian pussy]'''
 
'''- [http://naked-lesbians.servik.com naked lesbians]'''
 
'''- [http://lesbians-kissing.servik.com lesbians kissing]'''
 
'''- [http://lesbian-movie.servik.com lesbian movie]'''
 
'''- [http://lesbian-licking.servik.com lesbian licking]'''
 
'''- [http://black-lesbians.servik.com black lesbians]'''
 
'''- [http://teen-lesbians-have-sex1.servik.com teen lesbians have sex]'''
 
'''- [http://asian-lesbians.servik.com asian lesbians]'''
 
'''- [http://free-lesbian-sex-videos.servik.com free lesbian sex videos]'''
 
'''- [http://lesbian-hentai.servik.com lesbian hentai]'''
 
'''- [http://hot-lesbians.servik.com hot lesbians]'''
 
'''- [http://hardcore-lesbian-sex.servik.com hardcore lesbian sex]'''
 
'''- [http://teen-lesbians1.servik.com teen lesbians]'''
 
'''- [http://free-lesbian-porn1.servik.com free lesbian porn]'''
 
'''- [http://teen-lesbian1.servik.com teen lesbian]'''
 
'''- [http://lesbian-orgy.servik.com lesbian orgy]'''
 
'''- [http://lesbian-porn.servik.com lesbian porn]'''
 
'''- [http://lesbian.servik.com lesbian]'''
 
'''- [http://lesbian-sex.servik.com lesbian sex]'''
 
'''- [http://lesbians.servik.com lesbians]'''
 
'''- [http://sex1.servik.com sex]'''
 
'''- [http://anal-sex.servik.com anal sex]'''
 
'''- [http://sex-positions.servik.com sex positions]'''
 
'''- [http://sex-stories.servik.com sex stories]'''
 
'''- [http://oral-sex.servik.com oral sex]'''
 
'''- [http://hardcore-sex.servik.com hardcore sex]'''
 
'''- [http://free-sex-stories.servik.com free sex stories]'''
 
'''- [http://family-sex.servik.com family sex]'''
 
'''- [http://group-sex.servik.com group sex]'''
 
'''- [http://cartoon-sex.servik.com cartoon sex]'''
 
'''- [http://anime-sex.servik.com anime sex]'''
 
'''- [http://free-sex1.servik.com free sex]'''
 
'''- [http://sex-toys.servik.com sex toys]'''
 
'''- [http://hot-sex.servik.com hot sex]'''
 
'''- [http://free-sex-videos.servik.com free sex videos]'''
 
'''- [http://pokemon-sex.servik.com pokemon sex]'''
 
'''- [http://free-sex-movies.servik.com free sex movies]'''
 
'''- [http://asian-sex.servik.com asian sex]'''
 
'''- [http://young-sex.servik.com young sex]'''
 
'''- [http://my-first-sex-teacher.servik.com my first sex teacher]'''
 
'''- [http://paris-hilton-sex-video.servik.com paris hilton sex video]'''
 
'''- [http://underage-sex.servik.com underage sex]'''
 
'''- [http://public-sex.servik.com public sex]'''
 
'''- [http://black-sex.servik.com black sex]'''
 
'''- [http://paris-hilton-sex.servik.com paris hilton sex]'''
 
'''- [http://forced-sex.servik.com forced sex]'''
 
'''- [http://sex-videos.servik.com sex videos]'''
 
'''- [http://rough-sex.servik.com rough sex]'''
 
'''- [http://manga-sex.servik.com manga sex]'''
 
'''- [http://teenage-sex.servik.com teenage sex]'''
 
'''- [http://toon-sex.servik.com toon sex]'''
 
'''- [http://interracial-sex.servik.com interracial sex]'''
 
'''- [http://sex-games.servik.com sex games]'''
 
'''- [http://disney-sex.servik.com disney sex]'''
 
'''- [http://granny-sex.servik.com granny sex]'''
 
'''- [http://amateur-sex.servik.com amateur sex]'''
 
'''- [http://free-sex-pics.servik.com free sex pics]'''
 
'''- [http://free-sex-clips.servik.com free sex clips]'''
 
'''- [http://oral-sex-techniques.servik.com oral sex techniques]'''
 
'''- [http://sex-oasis.servik.com sex oasis]'''
 
'''- [http://sex-tape.servik.com sex tape]'''
 
'''- [http://secretary-sex.servik.com secretary sex]'''
 
'''- [http://disney-sex-cartoons.servik.com disney sex cartoons]'''
 
'''- [http://sex-in-public-places.servik.com sex in public places]'''
 
'''- [http://sex-video-clips.servik.com sex video clips]'''
 
'''- [http://wild-sex.servik.com wild sex]'''
 
'''- [http://latina-sex.servik.com latina sex]'''
 
'''- [http://free-sex-games.servik.com free sex games]'''
 
'''- [http://beast-sex.servik.com beast sex]'''
 
'''- [http://girl-sex.servik.com girl sex]'''
 
'''- [http://sex-on-the-beach.servik.com sex on the beach]'''
 
'''- [http://star-wars-sex.servik.com star wars sex]'''
 
'''- [http://sex-in-public.servik.com sex in public]'''
 
'''- [http://sex-party.servik.com sex party]'''
 
'''- [http://housewife-sex.servik.com housewife sex]'''
 
'''- [http://milf-sex.servik.com milf sex]'''
 
'''- [http://fat-sex.servik.com fat sex]'''
 
'''- [http://digimon-sex.servik.com digimon sex]'''
 
'''- [http://japanese-sex.servik.com japanese sex]'''
 
'''- [http://sex-offenders.servik.com sex offenders]'''
 
'''- [http://shemale-sex.servik.com shemale sex]'''
 
'''- [http://midget-sex.servik.com midget sex]'''
 
'''- [http://car-sex.servik.com car sex]'''
 
'''- [http://real-sex.servik.com real sex]'''
 
'''- [http://wet-sex.servik.com wet sex]'''
 
'''- [http://simpson-sex.servik.com simpson sex]'''
 
'''- [http://sex-tips.servik.com sex tips]'''
 
'''- [http://pool-sex.servik.com pool sex]'''
 
'''- [http://kinky-sex.servik.com kinky sex]'''
 
'''- [http://adult-sex.servik.com adult sex]'''
 
'''- [http://free-sex-video.servik.com free sex video]'''
 
'''- [http://gay-teen-sex.servik.com gay teen sex]'''
 
'''- [http://hentai-sex.servik.com hentai sex]'''
 
'''- [http://free-sex-video-clips.servik.com free sex video clips]'''
 
'''- [http://pamela-anderson-sex.servik.com pamela anderson sex]'''
 
'''- [http://sex-clips.servik.com sex clips]'''
 
'''- [http://phone-sex.servik.com phone sex]'''
 
'''- [http://kim-possible-having-sex.servik.com kim possible having sex]'''
 
'''- [http://pamela-anderson-sex-tape.servik.com pamela anderson sex tape]'''
 
'''- [http://illustrated-sex-positions.servik.com illustrated sex positions]'''
 
'''- [http://sex-pictures.servik.com sex pictures]'''
 
'''- [http://sex-pics.servik.com sex pics]'''
 
'''- [http://virgin-sex.servik.com virgin sex]'''
 
'''- [http://outdoor-sex.servik.com outdoor sex]'''
 
'''- [http://beach-sex.servik.com beach sex]'''
 
'''- [http://indian-sex.servik.com indian sex]'''
 
'''- [http://people-having-sex.servik.com people having sex]'''
 
'''- [http://ebony-sex.servik.com ebony sex]'''
 
'''- [http://sex-video.servik.com sex video]'''
 
'''- [http://best-sex-positions.servik.com best sex positions]'''
 
'''- [http://having-sex.servik.com having sex]'''
 
'''- [http://hard-sex.servik.com hard sex]'''
 
'''- [http://sex-education.servik.com sex education]'''
 
'''- [http://college-sex.servik.com college sex]'''
 
'''- [http://sex-comics.servik.com sex comics]'''
 
'''- [http://world-sex.servik.com world sex]'''
 
'''- [http://celebrity-sex.servik.com celebrity sex]'''
 
'''- [http://sex-movies.servik.com sex movies]'''
 
'''- [http://office-sex.servik.com office sex]'''
 
'''- [http://simpsons-sex.servik.com simpsons sex]'''
 
'''- [http://teacher-sex.servik.com teacher sex]'''
 
'''- [http://free-sex-pictures.servik.com free sex pictures]'''
 
'''- [http://pregnant-sex.servik.com pregnant sex]'''
 
'''- [http://kim-possible-sex.servik.com kim possible sex]''''
 
'''- [http://shower-sex.servik.com shower sex]'''
 
'''- [http://girls-having-sex.servik.com girls having sex]'''
 
'''- [http://farm-sex.servik.com farm sex]'''
 
'''- [http://big-tits.xadulthosting.com big tits]'''
 
'''- [http://huge-tits.xadulthosting.com huge tits]'''
 
'''- [http://tit.xadulthosting.com tit]'''
 
'''- [http://small-tits.xadulthosting.com small tits]'''
 
'''- [http://tit-torture.xadulthosting.com tit torture]'''
 
'''- [http://monster-tits.xadulthosting.com monster tits]'''
 
'''- [http://natural-tits.xadulthosting.com natural tits]'''
 
'''- [http://flat-tits.xadulthosting.com flat tits]'''
 
'''- [http://tiny-tits.xadulthosting.com tiny tits]'''
 
'''- [http://tit-fucking.xadulthosting.com tit fucking]'''
 
'''- [http://nice-tits.xadulthosting.com nice tits]'''
 
'''- [http://big-black-tits.xadulthosting.com big black tits]'''
 
'''- [http://big-natural-tits.xadulthosting.com big natural tits]'''
 
'''- [http://teen-tits.xadulthosting.com teen tits]'''
 
'''- [http://black-tits.xadulthosting.com black tits]'''
 
'''- [http://perfect-tits.xadulthosting.com perfect tits]'''
 
'''- [http://massive-tits.xadulthosting.com massive tits]'''
 
'''- [http://gigantic-tits.xadulthosting.com gigantic tits]'''
 
'''- [http://free-big-tits.xadulthosting.com free big tits]'''
 
'''- [http://big-tit-patrol.xadulthosting.com big tit patrol]'''
 
'''- [http://tits-tits-tits.xadulthosting.com tits tits tits]'''
 
'''- [http://tits-and-ass.xadulthosting.com tits and ass]'''
 
'''- [http://giant-tits.xadulthosting.com giant tits]'''
 
'''- [http://perky-tits.xadulthosting.com perky tits]'''
 
'''- [http://little-tits.xadulthosting.com little tits]'''
 
'''- [http://celebrity-tits.xadulthosting.com celebrity tits]'''
 
'''- [http://asian-tits.xadulthosting.com asian tits]'''
 
'''- [http://huge-black-tits.xadulthosting.com huge black tits]'''
 
'''- [http://mature-tits.xadulthosting.com mature tits]'''
 
'''- [http://super-huge-tits.xadulthosting.com super huge tits]'''
 
'''- [http://big-tits-grandma.xadulthosting.com big tits grandma]'''
 
'''- [http://big-tit.xadulthosting.com big tit]'''
 
'''- [http://rate-my-tits.xadulthosting.com rate my tits]'''
 
'''- [http://latinas-masturbating.xadulthosting.com latinas masturbating]'''
 
'''- [http://latina-secretary-sex.xadulthosting.com latina secretary sex]'''
 
'''- [http://latina-asses.xadulthosting.com latina asses]'''
 
'''- [http://latina-naked-gallery.xadulthosting.com latina naked gallery]'''
 
'''- [http://big-latina-booty.xadulthosting.com big latina booty]'''
 
'''- [http://latina-moms.xadulthosting.com latina moms]'''
 
'''- [http://fine-latinas.xadulthosting.com fine latinas]'''
 
'''- [http://ghetto-latinas.xadulthosting.com ghetto latinas]'''
 
'''- [http://latina-teen-models.xadulthosting.com latina teen models]'''
 
'''- [http://latinas-gone-wild.xadulthosting.com latinas gone wild]'''
 
'''- [http://wet-latinas.xadulthosting.com wet latinas]'''
 
'''- [http://cute-latina-teens.xadulthosting.com cute latina teens]'''
 
'''- [http://big-busty-latinas.xadulthosting.com big busty latinas]'''
 
'''- [http://latina-fantasy.xadulthosting.com latina fantasy]'''
 
'''- [http://lesbian-latinas.xadulthosting.com lesbian latinas]'''
 
'''- [http://latina-videos.xadulthosting.com latina videos]'''
 
'''- [http://young-latina-girls.xadulthosting.com young latina girls]'''
 
'''- [http://latina-booty-fuck.xadulthosting.com latina booty fuck]'''
 
'''- [http://tight-ass-latinas.xadulthosting.com tight ass latinas]'''
 
'''- [http://nude-latina.xadulthosting.com nude latina]'''
 
'''- [http://latina-fucking.xadulthosting.com latina fucking]'''
 
'''- [http://latinas-nude.xadulthosting.com latinas nude]'''
 
'''- [http://free-latina-porn.xadulthosting.com free latina porn]'''
 
'''- [http://sexy-latina.xadulthosting.com sexy latina]'''
 
'''- [http://latina-blowjob.xadulthosting.com latina blowjob]'''
 
'''- [http://latina-fuck.xadulthosting.com latina fuck]'''
 
'''- [http://latina-sluts.xadulthosting.com latina sluts]'''
 
'''- [http://latina-tits.xadulthosting.com latina tits]'''
 
'''- [http://hot-latina.xadulthosting.com hot latina]'''
 
'''- [http://latina-anal.xadulthosting.com latina anal]'''
 
'''- [http://nude-latinas.xadulthosting.com nude latinas]'''
 
'''- [http://naked-latinas.xadulthosting.com naked latinas]'''
 
'''- [http://latina-ass.xadulthosting.com latina ass]'''
 
'''- [http://latina-pussy.xadulthosting.com latina pussy]'''
 
'''- [http://latina-sex.xadulthosting.com latina sex]'''
 
'''- [http://latina.xadulthosting.com latina]'''
 
'''- [http://mature-women-nude.servik.com mature women nude]'''
 
'''- [http://mature-nude-women.servik.com mature nude women]'''
 
'''- [http://literotica-mature.servik.com literotica mature]'''
 
'''- [http://mature-videos.servik.com mature videos]'''
 
'''- [http://mature-nipples.servik.com mature nipples]'''
 
'''- [http://mature-pussies.servik.com mature pussies]'''
 
'''- [http://adult-galleries-mature-women.servik.com adult galleries mature women]'''
 
'''- [http://mature-teachers-nude.servik.com mature teachers nude]'''
 
'''- [http://mature-cumshots.servik.com mature cumshots]'''
 
'''- [http://mature-sex-videos.servik.com mature sex videos]'''
 
'''- [http://mature-sex-pics.servik.com mature sex pics]'''
 
'''- [http://mature-sexy-women.servik.com mature sexy women]'''
 
'''- [http://mature-hairy-pussy.servik.com mature hairy pussy]'''
 
'''- [http://vintage-mature-sex.servik.com vintage mature sex]'''
 
'''- [http://mature-video.servik.com mature video]'''
 
'''- [http://mature-porn-women.servik.com mature porn women]'''
 
'''- [http://mature-cunts.servik.com mature cunts]'''
 
'''- [http://mature-adult.servik.com mature adult]'''
 
'''- [http://facial-cum-mature-women.servik.com facial cum mature women]'''
 
'''- [http://mature-anal-sex.servik.com mature anal sex]'''
 
'''- [http://mature-porno.servik.com mature porno]'''
 
'''- [http://mature-latina-girls.servik.com mature latina girls]'''
 
'''- [http://mature-cum-shots.servik.com mature cum shots]'''
 
'''- [http://naked-mature-daddies.servik.com naked mature daddies]'''
 
'''- [http://sexool-mature.servik.com sexool mature]'''
 
'''- [http://mature-lesbian-porn.servik.com mature lesbian porn]'''
 
'''- [http://mature-mom-sex.servik.com mature mom sex]'''
 
'''- [http://mature-thumbnails.servik.com mature thumbnails]'''
 
'''- [http://sexy-mature-woman.servik.com sexy mature woman]'''
 
'''- [http://mature-escort.servik.com mature escort]'''
 
'''- [http://mature-games.servik.com mature games]'''
 
'''- [http://older-mature-tits.servik.com older mature tits]'''
 
'''- [http://busty-blonde-mature.servik.com busty blonde mature]'''
 
'''- [http://mature-sex-stories.servik.com mature sex stories]'''
 
'''- [http://mature-group-sex.servik.com mature group sex]'''
 
'''- [http://moms-mature-naked.servik.com moms mature naked]'''
 
'''- [http://naked-mature-men.servik.com naked mature men]'''
 
'''- [http://naked-mature-moms.servik.com naked mature moms]'''
 
'''- [http://mature-porn-stars.servik.com mature porn stars]'''
 
'''- [http://mature-naughty-moms.servik.com mature naughty moms]'''
 
'''- [http://mature-moms-nude.servik.com mature moms nude]'''
 
'''- [http://mature-cum-woman.servik.com mature cum woman]'''
 
'''- [http://mature-women-anal.servik.com mature women anal]'''
 
'''- [http://mature-orgies.servik.com mature orgies]'''
 
'''- [http://mature-amateurs-over.servik.com mature amateurs over]'''
 
'''- [http://mature-woman-sex.servik.com mature woman sex]'''
 
'''- [http://plump-mature-women.servik.com plump mature women]'''
 
'''- [http://mature-nude-woman.servik.com mature nude woman]'''
 
'''- [http://mature-sex-movies.servik.com mature sex movies]'''
 
'''- [http://mature-pussy.servik.com mature pussy]'''
 
'''- [http://mature-sluts.servik.com mature sluts]'''
 
'''- [http://mature-tits.servik.com mature tits]'''
 
'''- [http://nude-matur-women.servik.com nude mature women]'''
 
'''- [http://mature-fuck.servik.com mature fuck]'''
 
'''- [http://free-mature-porn.servik.com free mature porn]'''
 
'''- [http://mature-woman.servik.com mature woman]'''
 
'''- [http://mature-boobs.servik.com mature boobs]'''
 
'''- [http://mature-thumbs.servik.com mature thumbs]'''
 
'''- [http://naked-and-mature-women.servik.com naked and mature women]'''
 
'''- [http://mature-nudes.servik.com mature nudes]'''
 
'''- [http://busty-and-mature.servik.com busty and mature]'''
 
'''- [http://mature-nude.servik.com mature nude]'''
 
'''- [http://mature-lesbian-sex.servik.com mature lesbian sex]'''
 
'''- [http://mature-women-sex.servik.com mature women sex]'''
 
'''- [http://mature-big-tits.servik.com mature big tits]'''
 
'''- [http://free-mature-sex.servik.com free mature sex]'''
 
'''- [http://hardcore-mature.servik.com hardcore mature]'''
 
'''- [http://mature-amateur.servik.com mature amateur]'''
 
'''- [http://mature-sex-with-women.servik.com mature sex with women]'''
 
'''- [http://mature-blowjobs.servik.com mature blowjobs]'''
 
'''- [http://mature-slut.servik.com mature slut]'''
 
'''- [http://mature-escorts.servik.com mature escorts]'''
 
'''- [http://mature-cunt.servik.com mature cunt]'''
 
'''- [http://mature-hardcore.servik.com mature hardcore]'''
 
'''- [http://nude-mature.servik.com nude mature]'''
 
</div>
 

Latest revision as of 20:48, 26 June 2016

The Liberty Eiffel debugger is an Embedded debugger. This means that in order to use it, you need to compile your application with a special flag -sedb. The executable will then have the debugger inside, you can launch your application the usual way.

Note: sedb is only available with compile_to_c (or compile).

The debugger offers powerful commands which allows you to examine the bowels of your program:

  • commands to control execution,
  • commands to set or unset breakpoints,
  • commands to print your data,
  • other various commands.

Execution control

These commands allow your program to execute. You can either run step by step or make bigger strides, or even force execution until the end.

Whatever your choice is, the program will run until the next breakpoint (see below), or until the next ^C.

The available commands are (in increasing order of step size):

s  Move only one step forward. This means entering a routine if the step is a feature call.
n  Move only one step forward (next), but without entering a routine (this means that a feature call is considered as one step).
f  Move to the next routine return (finish).
c  Move as far as possible (continue), perhaps even to the end of the program.
C  Continue until the end of the program, ignoring all breakpoints (whether static or dynamic).

Breakpoints

There are two kinds of breakpoints:

  • those explicitly placed in the code, with the instruction sedb_breakpoint,
  • those dynamically placed in the debugger. To modify dynamic breakpoints, you can use the following commands:
b  Add a dynamic breakpoint. There are many possible criteria, described below. All chosen criteria must be valid to activate the breakpoint.
B  Print all dynamic breakpoints.
-<num>  Remove a dynamic breakpoint designated by its number. The numbers are printed by the B command.

The sedb_breakpoint instruction

The sedb_breakpoint instruction is defined in ANY. It places a static breakpoint directly in the Eiffel source. This command does nothing if the program is not compiled with the -sedb flag.

These breakpoints cannot be removed by the -<num> command. The only way to ignore them is to use the C command (continue until the end of the program).

Specifications of a dynamic breakpoint

To set up a dynamic breakpoint, you can specify one or more criteria.

  • Name: the name of the method and the class name in which the method is defined, separated by a space, for example "item STRING". You can specify a substring of this name. Thus, if you specify item, the program will stop at the beginning of the item method of STRING, but also at the beginning of the one in ARRAY, etc. Similarly, if you specify STRING, the program will stop when encountering any method of STRING, but also of HASHED_DICTIONARY[STRING, INTEGER]. You can even be original: I will let you guess the behaviour of the is_ specification :-)
  • File: for example, string.e. As the file name is applied to the complete path, you can specify lib/kernel which will stop at all the methods in the classes of that cluster.
  • Line numbers: you can specify a range of lines, for example [12,13].
  • Execution stack: this condition lets you track the size of the execution stack (useful for debugging a recursive function, for example). For instance, you can specify a stack size limit of 10, which will stop the execution when the stack size reaches 10. An optional automatic increment permits the limit to be incremented each time the breakpoint is reached. If you don't use this option, this breakpoint can be a good way to track the stack's memory consumption.

Of course, all these specifications are cumulative: they must all be true at the same time to activate the breakpoint.

Data printing

The following commands allow to print the data of your program:

e <exp>  Evaluates and prints the result of an expression. Note that the general Eiffel expressions are not supported.
Only the following can be printed:
  • Current
  • local variables
  • a parameter of the current routine
  • the content of an instance of a NATIVE_ARRAY; suffixing the attribute name with a dot and an index beginning at zero prints the contents of the specified array element. For example storage.2 prints the third element of storage.
  • the attributes of these objects, by using the classical notation with dots (for example my_string.count or my_string.storage.4), recursively
  • the result of once functions, provided that they have already been evaluated (i.e. the debugger does not execute the function call; it only checks the result)
p

p <exp> 

Re-evaluates the last expression by suffixing a dot and the expression <exp> (if present). This is very useful for chain printing. Instead of a single dot you can also use the notation .. which goes one level up, .... which goes two levels up, etc.
Example of the use of e and p :
sedb> e Current
STD_OUTPUT#0x807ab00
        [ filter = Void
          buffer_position = 0
          buffer = NATIVE_ARRAY[CHARACTER]#0x806c030
          capacity = 4096
        ]
sedb> e buffer
NATIVE_ARRAY[CHARACTER]#0x806c030
sedb> p.0
(sedb) e buffer.0
'H'
sedb> p..1
(sedb) e buffer.1
'e'
sedb> p....buffer_position
(sedb) e buffer_position
0
sedb>
.  Print the current frame; that is the content of the local variables of the current routine.
u  Goes up in the stack (i.e. goes to the caller). This means that the calling routine becomes the current routine. Note that the e, p and . commands follow the current routine.
d  Goes down in the stack (opposite of u).
S  Prints the execution stack. There are two printing modes:
  • compact mode which only prints the name of the file and executed routine; an asterisk indicates the current routine
  • complete mode which prints the entire stack, with all frames (as the printed stack when a program crashes outside sedb).

Various commands

q  Quits the debugger; the program will be stopped. You can also use Q which doesn't ask for confirmation.
h

? 

Prints help.
H  Prints detailed help.
G  Runs the garbage collector, if it is present.
T  Changes the trace mode, if it is present (flag -trace when compiling). If the mode is active, the file trace.se fills up (very quickly!)
Return  Re-executes the last command.