Sedb

From Liberty Eiffel Wiki
Revision as of 01:57, 26 October 2005 by 195.39.240.10 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


- levitra - levitra online - levitra prices - order levitra - generic levitra - levitra uk - buy levitra - levitra viagra - viagra levitra - levitra side - buy levitra online - online levitra - levitra buy - what is levitra - cheap levitra - take levitra - www levitra - levitra review - levitra order - Free porn clips - free porn videos - hardcore porn - asian porn - porn stars - free lesbian porn - free gay porn - black porn - underage porn - reality porn - celebrity porn - porn star - futurama porn - anti spyware - free spyware - spyware - anti spyware software - cartoon porn - hardcore fuck - anal fuck - asian fuck - pussy fuck - fuck you - fuck fest - gay fuck - fuck my wife - fuck me - teen fuck - horse fuck - titty fuck - get viagra - buying viagra - viagra pill - online viagra - viagra for sale - viagra for women - viagra sale - viagra sales - viagra ireland - cheapest viagra - female viagra - order viagra - viagra prescription - discount viagra - generic viagra - debt consolidation - ebony porn - mature porn - vintage porn - porn underage - free porn movie clips - porn videos - amateur porn - free teen porn - indian porn - xxx porn - free porn video - hentai porn - free anime porn - porn clips - adult porn - free hardcore porn - free porn video clips - free asian porn - granny porn - free porn pictures - japanese porn - celeb porn - free porn sites - free cartoon porn - russian porn - porn sites - porn for women - free porn galleries - anal porn - pregnant porn - latina porn - atlantic city casino - atlantic city casino images - atlantic city casino directory - atlantic city casino taj mahal - atlantic city casino phonenumbers - atlantic city casino comps - atlantic city casino room deals - atlantic city casino deals - atlantic city casino poker tournaments - atlantic city casino restaurant - atlantic city casino packages from detroit - atlantic city casino games - atlantic city casino coin packages - atlantic city casino thanksgiving - atlantic city casino job openings - atlantic city casino reviews - atlantic city casino on strike - reservations atlantic city casino - atlantic city casino taj mahal accounts - atlantic city casino survey - atlantic city casino offers - atlantic city casino free buffet - atlantic city casino pokler tournaments - school blowjobs - latina blowjobs - ebony blowjob - blowjob mpegs - street blowjob - giving a blowjob - amateur blowjob - mature blowjob - give a perfect blowjob - blonde blowjob - ebony blowjobs - hardcore blowjobs - blowjob tutorials - blowjob movies - black blowjobs - free blowjob videos - homemade blowjob - asian blowjobs - asian blowjob - blowjob galleries - blowjob movie - teen blowjob - gay blowjob - teen blowjobs - gay blowjobs - blowjobs - blowjob - blowjob clips - fuck - tit fuck - ass fuck - titty fuck - teen fuck - fuck me - fuck my wife - gay fuck - butt fuck - fuck fest - pussy fuck - hard fuck - asian fuck - first fuck - anal fuck - hardcore fuck - mature fuck - fuck machine - finger fuck - hot fuck - bat girl fuck - fuck me hard - wife fuck - black fuck - fist fuck - gay black - gay bears - gay bear - gay bdsm - gay bareback - gay ass fucking - gay ass - gay asian - gay anime - gay anal sex - gay anal - gay - free gay videos - free gay video clips - free gay video - free gay sex videos - free gay sex stories - free gay sex movies - free gay sex - free gay porn - free gay pix - free gay pictures - free gay pics - free gay movies - free gay male porn - free gay galleries - free gay chat - free gay - dad and son gay sex - boys gay kiss - black gay - big gay cocks - big gay cock - alta gay links - all free nude babes - gay group sex - gay black men - gay black sex - gay blow job - gay blow jobs - gay blowjob - gay blowjobs - gay bondage - gay boy - gay boy sex - gay boys - gay cartoon - gay chat - gay cock - gay cocks - gay cops - gay cum - gay cum shot - gay cum shots - gay cumshot - gay cumshots - gay dicks - gay dudes - gay erotic stories - gay escorts - gay fisting - gay fuck - gay fucking - gay gang bang - gay gangbang - phentermine - girl teens posing in bras - teen boys - young teens - teen lesbians have sex - teen ass - anal teen - ass teen - teen kelly - hot teen girls - pre teens have sex - teen thongs - teen titans - tiffany teen - teen model - naked teens - teen sexuality - teen titans hentai - teens for cash - nude teens - teen lesbians - hot teens - teen models - teen pussy - teen porn - sexy teens - teen lesbian - teens - teen - teen sex - teen girls - incest - incest stories - incest porn - hentai galleries - free incest stories - family incest - cartoon incest - gay incest - incest sex stories - incest sex - daughter incest - free incest sex stories - free incest - incest pics - lesbian incest - incest art - incest cartoons - incest comics - brother sister incest - 3d incest - incest pictures - mother daughter incest - mother son incest - dad and daughter incest - family fucking incest - incest toons - father daughter incest - teen incest - free incest pics - sister incest - incest mom - sonic hentai galleries - brother and sister incest - free incest pictures - erotic incest stories - simpsons incest - hentai incest - mom incest - incest videos - free cartoon hentai galleries - incest photos - free incest porn - anime incest - incest movies - incest cartoon - incest taboo - incest mother and daughter - free incest movies - incest story - incest mom son - mom son incest - comics incest - free incest galleries - real incest - free hentai galleries - incest forum - free incest videos - incest rape - incest hentai - family incest galleries

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.