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
CIL-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cil-users

Reply via email to