CINT(1) CINT(1) NAME cint - C/C++ interpreter DESCRIPTION "cint" is a C/C++ interpreter. About 95% of ANSI C and 90% of C++ features are covered. (Data abstraction, class inheritance, virtual function, function and operator over- loading, default parameter, template, etc...) Cint has source code debugger for interpreted source code and it has sufficient capability for debugging a C++ script. CINT AND MAKECINT Cint can be used just as it is, but it is recommended to use makecint. Makecint can encapsulate native C/C++ objects into Cint as precompiled libraries. User defined precompiled objects can be accessed from the interpreter and a user application can invoke C/C++ interpreter as interactive interface. It provides seamless compiler/interpreter scripting environment. Precompiled libraries can be dynamically loaded/unloaded if they are configured as Dynamic Link Library (DLL). SEE ALSO MAKECINT(1) SYNOPSIS cint <[options]> <[sourcefiles]|[suboption]> <[arguments]> [options] (* : used only with makecint or -c option) -A : ANSI C++ mode(default) -b [line] : set break line * -c -1: make C++ precompiled interface method files * -c -2: make C precompiled interface method files * -c -10: make C++ precompiled interface method files. Default link off * -c -20: make C precompiled interface method files. Default link off * -c -11: make C++ precompiled interface method files. Default link on * -c -21: make C precompiled interface method files. Default link on -C : copy src to $TMPDIR so that src can be change during cint run -d [dumpfile] : dump function call history -D [macro] : define macro symbol for #ifdef -e : Not ignore extern declarations -E : Dump core at error -E -E : Exit process at error and uncaught exception -f [file] : set break file -F [assignement] : set global variable -G [tracedmp] : dump exec trace into file -i : interactively return undefined symbol value -I [includepath] : set include file search path -j [0|1]: Create multi-thread safe DLL(experimental) -J[0-4] : Display nothing(0)/error(1)/warning(2)/note(3)/all(4) -K : C mode -l [dynamiclinklib] : link dynamic link library -m : Support 8bit char comment (Disable multi-byte char) * -n [linkname] : Specify precompiled interface method filename * -N [DLL_name] : Specify DLL interface method name -O [0~4] : Loop compiler on(1~5) off(0). Default on(4) -Q : Quiet mode (no prompt) -p : use preprocessor prior to interpretation -q [security] : Set security level(default 0) -r : revision and linked function/global info -R : display input file at break point -s : step execution mode -S : step execution mode, First stop in main() -t : trace execution -T : trace from pre-run * -u [undefout] : listup possible undefined typenames * -U [dir] : directory to disable interface method generation * -V : Generate symbols for non-public member with -c option -v : Bytecode compiler debug mode -X [readlinedumpfile] : Execute readline dumpfile -x 'main() {...}' : Execute argument as source code -Y [0|1] : ignore(1) not ignore(0) std namespace -Z [0|1]: auto loading of std hdr files with DLL --'command': Execute interactive command and terminate Cint [sourcefiles] Cint directly accepts C/C++ source file. If you give mul- tiple source files, main() function must be included in the last one. If source file is omitted or main() function is not found in given source file, cint automatically starts interactive interface. Cint reads source file on-the-fly from the file system. Do not change the active source files during cint run. [suboptions] (* : used only with makecint or -c option) Suboptions are options which appears in between source files. +V : turn on class title comment mode for following source fies -V : turn off class title comment mode for following source fies +P : turn on preprocessor for following source files -P : turn off preprocessor for following source files * +STUB : stub function header begin * -STUB : stub function header end [arguments] Arguments to main(int argc,char *argv[]) function. EXAMPLE $ cint $ cint lib1.c lib2.c source.c $ cint -S -I../include -DDEBUG source.c $ cint -x 'main(int argc,char *argv[]){printf("%s\n",argv[1]);}' $ cint -qlevel1 myprog.C LANGUAGE LIMITATIONS Refer to doc/limitati.txt DEBUG MODE Cint starts debug mode at following situation. * main() function is not included in the given source file. * Step execution mode (-S,-s option) * Program reaches to a break point * Keyboard interrupt (CTL-C or Break) * Explicit call of interactive interface function G__pause(). * Bus error or segmentation violation occurred. # GNU readline GNU readline library , if exists, is used as command line front-end processor. It can perform command line editing and name completion. # Debug mode command You can perform step and trace execution, locate as many break points as you want, look into function/vari- able/class information tables, etc... Use of following debug mode commands enables you to do these things. Cint's debug mode can only debug interpreted source code. You need to use a binary level debugger to debug pre-com- piled library. Cint can be used with any kind of binary level debugger such as xdb,gdb. cint (C/C++ interpreter) debugger usage: Dump: n [file] : create new readline dumpfile and start dump y [file] : append readline dump to [file] z : stop readline dump < [file] : execute readline dumpfile > [file] : output redirect to [file] 2> [file] : error redirect to [file] . : switch command input mode Help: ? : help help : help /[keyword] : help information for keyword Completion: [nam][Tab] : complete symbol name start with [nam] [nam][Tab][Tab] : list up all symbol name start with [nam]] Shell: ![shell] : execute shell command Source: v <[line]>: view source code <around [line]> V [stack] : view source code in function call stack t : show function call stack f [file] : select file to debug T : turn on/off trace mode for all source J [stat] : Set warning level [0-5] A [1|0] : allowing automatic variable on/off trace <classname> : turn on trace mode for class deltrace <classname> : turn off trace mode for class break [classname] : set break point at every [classname] memberfunc delbreak [classname] : turn off memberfunc break point Evaluation: p [expr] : evaluate expression (no declaration/loop/condition) s [expr] : step into expression (no declaration/loop/condition) S [expr] : step over expression (no declaration/loop/condition) {[statements]} : evaluate statement (any kind) x [file] : load [file] and evaluate {statements} in the file X [file] : load [file] and execute function [file] (wo extension) E <[file]>: open editor and evaluate {statements} in the file Load/Unload: L [file] : load [file] La [file] : reload all files loaded after [file] U [file] : unload [file] C [1|0] : copy source to $TMPDIR (on/off) reset : reset interpreter environment undo : undo previous declarations lang : local langguage (EUC,SJIS,EUROPEAN,UNKNOWN) Monitor: g <[var]> : list global variable l <[var]> : list local variable proto <[scope]::>[func] : show function prototype class <[name]> : show class definition (one level) Class <[name]> : show class definition (all level) typedef <name> : show typedefs function : show interpreted functions macro : show macro functions template : show templates include : show include paths file : show loaded files where : show current file position security : show security level refcount : reference count control on/off garbage : show garbage collection buffer Garbage : Do garbage collection cover [file] : save trace coverage return [val] : return undefined symbol value Run: S : step over function/loop s : step into function/loop i : ignore and step over c <[line]>: continue <to [line]> e : step out from function f [file] : select file to debug b [line] : set break point db [line] : delete break point a [assert]: break only if assertion is true O [0~4] : Set bytecode compiler mode debug : bytecode status display on/off asmstep : bytecode step mode on/off status : show bytecode exec flags dasm : disassembler Quit: q : quit cint qqq : quit cint - mandatory ENVIRONMENT VARIABLE You need to set following environment variables. If you install cint into /usr/local/cint directory, for example, ksh/bsh CINTSYSDIR=/usr/local/cint export CINTSYSDIR # or where you have installed cint csh setenv CINTSYSDIR /usr/local/cint # or where you have installed cint CINT INSTALLATION Refer to $CINTSYSDIR/README.txt and $CINTSYSDIR/plat- form/README.txt. SEE ALSO doc/makecint.txt AUTHOR Masaharu Goto (cint@pcroot.cern.ch) Copyright (c) 1995~2000 Masaharu Goto