Hi there,
I am new to CIL and I have some difficulty to get start using it.
What I want to do is to print all executed statements (including declaration
statements) at runtime.
I studied and modified logcall.ml. I have a visitor to visit and instrument a
printf statement before each actual statement. My visitor has only one method
which is vstmt, here is the code:
method vstmt (s : stmt) = begin
let pre = mkPrint (d_string "exit %s\n" !currentFunc) [] in
ChangeTo (mkStmt (Block (mkBlock [ mkStmtOneInstr pre; s ])))
However, when I run the instrumented code, it print each statement only once.
The instrumented code has a loop so the statements inside the loop should be
printed for multiple times. Beside, I can't instrument a printf before the
declaration statement (which is not a statement in CIL). I try adding a vvdec
method and try adding a code to instrument a printf statement before the
declaration location but it didn't work.
I think I must misunderstand something and definitely don't fully understand on
how CIL works.
Any suggestion or advice would be very appreciate to hep me get going :)
Thank you very much,
Sirinda
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
CIL-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cil-users