FunctionCheck is a profile generator for C/C++ programs. It uses the gcc '-finstrument-functions' feature to track each function entry and exit. It computes local and total times in functions, the number of calls, the average time per call, and function calls. It can also count time spent in sub-functions not compiled with '-finstrument-functions'. The time balance between functions is always respected. It also can trace memory allocations and report on memory leaks, showing the call stack leading up to the allocation of the leaked blocks.
Release Notes: The call graph was extended to record the time spent on each individual call arc, not just the total time in each function. Some minor fixes were made for 64-bit compatibility.
Release Notes: This release adds changes to fncdump for more stability on Solaris, and fixes realloc trace handling. Some tweaks have been made to the per-thread time accounting.
Release Notes: This release is more portable and has been tested on Solaris 2.8. malloc is now intercepted using dlsym instead of glibc's malloc_hooks function, eliminating the dependency on glibc, and making it portable to any SVR4 libdl system. Pthreads are now supported on Solaris as well.
Release Notes: Better thread support, changing the tracefile format to add per-caller counters, changes to the call graph format to be more like gprof, and less memory usage when processing a memory tracefile.
Release Notes: The memory trace file format is compacted, and memory trace processing has been sped up tremendously through the use of AVL trees instead of unsorted arrays. The library now also supports pthreads mutex locking for thread safety. The memalign() function has been added to the memory tracing facility.