Evaluating Dyninst and GDB tracing infrastructure performance for possible dynamic tracing support with UST
I spent some time understanding behaviour of Dyninst (dynamic instrumentation API - quick overview - http://www.dyninst.org/dyninstexample) for possibly using it with UST in the near future for dynamic instrumentation. Some elementary overhead analysis was done too. A couple of preliminary observations are attached. The first one (obs1.png) depicts mean time taken to mutate a 'dummy' binary with expressions equivalent to initializing and incrementing a variable. The mean is of 10 sets with 20 runs of the 'mutator' program in each. Second figure (obs2.png) shows the mean time taken by 10,000 runs of a mutated function in the mutated dummy binary (written back to the disk) over 1000 observations.
Analysis of GDB tracing is still a WIP and hopefully interesting observations will come out soon. Next step is to run more organized tests and get concrete results for a better choice