Changes from 1.1.5 to 1.2: * add option '-call-graph' which outputs the profiled program call-graph, using VCG format (a call-graph displayer under UNIX/Linux [and other]). Tested: OK. * adding a doc/ dir. Adding a .texi file with the fnccheck/fncdump documentation in it. Adding a fncdump.info file (generated using fncdump.texi and makeinfo). Adding a doc/html/ dir, with an HTML doc in it (using fncdump.texi and texi2html). * adding '-cycles' option. Displays the detected recursions and cycles (non-direct recursions) in the program. For each, display starting/ending function of the cycle and the total time spend in the cycle. * add "titles" to parts of the 'fncdump''s output (i.e "General information:", "Flat profile:", "Call-graph:"...). * create a 'fncinteract.h' header, with corresponding functions in 'fnccheck' lib. It adds some functions to interact with 'fnccheck' lib during execution. The two main functions are 'fnccheck_stop_profile()' and 'fnccheck_start_profile()' which allow the program to stop or re-start the profile treatments. Useful if you want to profile only a small part of your program. ** Not stable **. Note: by default, main() is always part of the profiled functions (because you always enter main() before doing anything). It is possible to start your program 'as if' 'fnccheck_stop_profile()' was called before by using FNCCHK_SUSPEND variable. Note bis: if you desactivate profile before entering a function, and you re-activate it before leaving from this function, the 'fnccheck' library will see an exit from a never-entering (for it) function. I dont know what can happend in this case (but a priori something bad :o) * remove FNCCHK_PID variable. Now fnccheck creates a 'fnccheck.out' file for processes, instead of it is a child process, in which case a 'fnccheck.out_PID' is generated. It is possible to prevent childs to generate dump file by using FNCCHK_NOCHILD shell variable. * change in the way 'total execution time' is performed. * add '-sum-profile' which allows to add the contents of two profile files into a new profile file (useful to cumulate profiles data). Changes from 1.1.4 to 1.1.5: * add an install target for Makefile (Petter Reinholdtsen) * add new DEBUG flags for tracking bugs :o) * separate some code from 'fnccheck.c' and 'fncdump.c'. Now 'fncdump.c' dont need anymore to be linked with 'fnccheck.o'. * use 'libbfd' to extract functions name, file and line. This is the default behavior. You can still use 'nm' (-nm) or 'addr2line' (-addr2line). If you dont have 'libbfd' and 'libiberty' (from GNU binutils) use 'make fncdump_nobfd' instead of 'make fncdump'. It will generates 'fncdump' with only 'nm' and 'addr2line' approaches. * add '-fullname' option. Make files name (if requested) to be displayed with full path. * correct a bug that make 'main' exited twice for the lib when leaving the profiled program using 'exit' (it was changing the final time for main). * developing a new approach for local time propagation from child functions. It compute real local times instead of transmiting time spend in child functions. It changes nothing for ordinary functions but gives correct local times for recursive (and cross-recursive) functions. * add '-real-maxtime' option. Total execution time (using to compute time perecentages) is computed from displayed list of functions instead of the complete list of functions. * few changes in flat profile display. * starting to create a .info file in 'doc/' directory. Not finished yet. In fact I'm using the 'gprof' info file as a base, but I did something wrong and the .info generated is not correct. Still being updating (will be ready for V1.2). Changes from 1.1.3 to 1.1.4: * removing functions that compute average time per call for the lib in fncdump.c and fnccheck.c. Creating instead a fncaverage.c to perform this. Adding also targets for the Makefiles. This new approach uses REAL calls to the lib (and so generates a fnccheck.out file). * change the -avg option in fncdump in order to call the fncaverage prog instead. * internal: add a hash-table for the 'hx_search_function()'. * change some functions to 'inline' for improvement purpose. * switch to '-O3' optimisation (allows 'inline'). * change 'dump' into 'fncdump' (more specific). * rename fncdump options '-calls+' and '-func+' into resp. '-call-details' and '-func-details'. * change options reading system for 'fncdump' in order to accept several option names for the same option (in particular to let people use old options name (-calls+...) with the new version). * update --help, --details. Add version number to --help. * add print of full version number (including devel sub-part) when starting the lib. * add a shell variable FNCCHK_STOP which desactivate the lib at execution (I use it to compare execution time with and without the lib activated). * trying to put some functions 'inline' in order to accelarate treatments. * correcting an index display bug for 'called by' list. * adding some '\n' missing during display. Changes from 1.1.2 to 1.1.3: * internal: create a real call-tree for functions * -only and -not options * -[r]propagate: allow to propagate -only/-not using the call-tree * new archive organisation: - a src/ dir containing dump and lib sources - a test/ dir containing a test program - lib/ and bin/ dirs - recursive Makefile at root for lib, dump, test. * moving "display" part of fnccheck.c in dump.c * change %g to %f for time display for lisibility * add 'static' for fnccheck functions to prevent names colisions * change 'long long int' to 'long int' for speedup/memory optimisation (and because long int is enough for years...) Changes from 1.1.1 to 1.1.2: * improve parts of the _bad_ english of the README.txt * add some help texts in the error messages * add new options to 'dump' (see dump) * change symbol extraction in order to use 'addr2line' * new dump feature: display file/line for functions (if requested) -> not available with '-nm' option. * correct bad names for C++ functions * display MIN and MAX time for functions (see '-no-minmax') * '--details' gives explanations on output informations. * makefile improvements. default target display possible choice. target 'lib' added, target 'all' added. switch -g added. requiered for FILE:LINE infos.