Sedb

From Liberty Eiffel Wiki
Revision as of 19:43, 6 November 2005 by 195.39.240.10 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


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 -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 (by increasing order of step size):

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

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 dynamical breakpoints.
-<num>  Remove a dynamic breakpoint designed 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 are able to 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 then 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 then the program will stop when encountering any method of STRING, but also of HASHED_DICTIONARY[STRING, INTEGER]. You can even be original: I 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 this cluster.
  • Line numbers: you can specify an interval of lines, for example [12,13].
  • 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 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 good way of track the memory consumption of the stack.

Of course, all these specifications are cumulative: in this case, 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 the case of a NATIVE_ARRAY and suffixing by a dot one of its index beginning at zero (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 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)
p

p <exp> 

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 .. 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 local variables of the current routine.
u  Goes up in the stack (i.e. goes to the caller). This means that the current routine becomes the calling 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 programm 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's present.
T  Changes the trace mode, if it's present (flag -trace when compiling). If the mode is active, the file trace.se fills up (very quickly!)
Return  Re-executes the last command.

- pharmacy pills - female masturbation machine - male masturbation for teens - lesbian fingering masturbation - masturbation tips for men - masturbation boys - solo masturbation - vaginal masturbation - female masturbation video - boy masturbation - prostate masturbation - shower masturbation - masturbation video - caught public masturbation - vegetable masturbation - masturbation pictures - masturbation methods male - woman masturbation techniques - young girls masturbation - amateur masturbation - sex education masturbation - male masturbation guide - female masturbation videos - masturbation devices home made - homemade masturbation toy - shemale masturbation - dildo masturbation - masturbation illustrated - masturbation movies - masturbation videos - anal masturbation - best malemasturbation technique - female masturbation stories - gay masturbation - masturbation stories - male masturbation - female masturbation - bigger online casino - lesbian kiss - hot lesbian sex - nude lesbians - free lesbian videos - lesbian teens - lesbian stories - lesbian anime - mature lesbians - lesbian sex stories - ebony lesbians - horny lesbians - free lesbian movies - dildo lesbian - lesbian bondage - asian lesbian - lesbian action - wet lesbians - lesbian porno - hardcore lesbians - lesbian videos - lesbian girls - lesbian love - kiss lesbian teen - ebony lesbian - free lesbian sex stories - lesbian threesome - lesbian sex videos - black lesbian sex - cheerleader lesbians having sex - lesbian lovers - black lesbian - lesbian movies - free lesbian sex - free teen lesbian orgy - lesbian pink - fat lesbians - free videos of lesbians - lesbian pics - lesbian dildo - ass licking lesbian - lesbian teen - lesbian fucking - first time lesbians - hot lesbian - lesbians eating pussy - lesbian girls licking - her first lesbian sex - lesbians having sex - sexy lesbians - lesbians fucking - lesbian pussy - naked lesbians - lesbians kissing - lesbian movie - lesbian licking - black lesbians - teen lesbians have sex - asian lesbians - free lesbian sex videos - lesbian hentai - hot lesbians - hardcore lesbian sex - teen lesbians - free lesbian porn - teen lesbian - lesbian orgy - lesbian porn - lesbian - lesbian sex - lesbians - sex - anal sex - sex positions - sex stories - oral sex - hardcore sex - free sex stories - family sex - group sex - cartoon sex - anime sex - free sex - sex toys - hot sex - free sex videos - pokemon sex - free sex movies - asian sex - young sex - my first sex teacher - paris hilton sex video - underage sex - public sex - black sex - paris hilton sex - forced sex - sex videos - rough sex - manga sex - teenage sex - toon sex - interracial sex - sex games - disney sex - granny sex - amateur sex - free sex pics - free sex clips - oral sex techniques - sex oasis - sex tape - secretary sex - disney sex cartoons - sex in public places - sex video clips - wild sex - latina sex - free sex games - beast sex - girl sex - sex on the beach - star wars sex - sex in public - sex party - housewife sex - milf sex - fat sex - digimon sex - japanese sex - sex offenders - shemale sex - midget sex - car sex - real sex - wet sex - simpson sex - sex tips - pool sex - kinky sex - adult sex - free sex video - gay teen sex - hentai sex - free sex video clips - pamela anderson sex - sex clips - phone sex - kim possible having sex - pamela anderson sex tape - illustrated sex positions - sex pictures - sex pics - virgin sex - outdoor sex - beach sex - indian sex - people having sex - ebony sex - sex video - best sex positions - having sex - hard sex - sex education - college sex - sex comics - world sex - celebrity sex - sex movies - office sex - simpsons sex - teacher sex - free sex pictures - pregnant sex - kim possible sex' - shower sex - girls having sex - farm sex - big tits - huge tits - tit - small tits - tit torture - monster tits - natural tits - flat tits - tiny tits - tit fucking - nice tits - big black tits - big natural tits - teen tits - black tits - perfect tits - massive tits - gigantic tits - free big tits - big tit patrol - tits tits tits - tits and ass - giant tits - perky tits - little tits - celebrity tits - asian tits - huge black tits - mature tits - super huge tits - big tits grandma - big tit - rate my tits - latinas masturbating - latina secretary sex - latina asses - latina naked gallery - big latina booty - latina moms - fine latinas - ghetto latinas - latina teen models - latinas gone wild - wet latinas - cute latina teens - big busty latinas - latina fantasy - lesbian latinas - latina videos - young latina girls - latina booty fuck - tight ass latinas - nude latina - latina fucking - latinas nude - free latina porn - sexy latina - latina blowjob - latina fuck - latina sluts - latina tits - hot latina - latina anal - nude latinas - naked latinas - latina ass - latina pussy - latina sex - latina - mature women nude - mature nude women - literotica mature - mature videos - mature nipples - mature pussies - adult galleries mature women - mature teachers nude - mature cumshots - mature sex videos - mature sex pics - mature sexy women - mature hairy pussy - vintage mature sex - mature video - mature porn women - mature cunts - mature adult - facial cum mature women - mature anal sex - mature porno - mature latina girls - mature cum shots - naked mature daddies - sexool mature - mature lesbian porn - mature mom sex - mature thumbnails - sexy mature woman - mature escort - mature games - older mature tits - busty blonde mature - mature sex stories - mature group sex - moms mature naked - naked mature men - naked mature moms - mature porn stars - mature naughty moms - mature moms nude - mature cum woman - mature women anal - mature orgies - mature amateurs over - mature woman sex - plump mature women - mature nude woman - mature sex movies - mature pussy - mature sluts - mature tits - nude mature women - mature fuck - free mature porn - mature woman - mature boobs - mature thumbs - naked and mature women - mature nudes - busty and mature - mature nude - mature lesbian sex - mature women sex - mature big tits - free mature sex - hardcore mature - mature amateur - mature sex with women - mature blowjobs - mature slut - mature escorts - mature cunt - mature hardcore - nude mature