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