Version 1 Limit_ltrace.tag.gz
First, specify the function signatures of the dynamic calls you want to intercept in the ltrace.list file. The included one has a bunch of common calls which you may or may not care about. Next, compile with make. This should produce "ltrace.so". Now, run your program with ltrace.so as a preload. You can specify the counter to use with the LT_CTR environment variable.
$ emacs ltrace.list $ make $ LT_CTR="0x0146" LD_PRELOAD=./ltrace.so my_application_to_monitor .... <normal program output> $ ls /tmp/ltrace/*.csv $ ls /tmp/ltrace/<output file>
Technical Tricks Used
Dynamic function interposition is really cool, so we use it. This is the best tutorial I've seen on it.
LiMiT Library Replacement
This tool doesn't use the LiMiT library provided on the Download page. That library is designed to be statically linked to the monitored executable, which influences the way the access code works, particularly with respect to the location of the overflow variable. We replace that code with slightly more generic though slightly slower code which works within a shared object.