On Wed, 25 Nov 2020, Phyllis Smith via Cin wrote:
Andrew, not sure but I think running Valgrind with lv2 plugins is just
My note has no direct relation to the topic, but nevertheless. I realized that Cinelerra Makefiles do not have sufficient set of dependencies of the .o files from all the relevant .h files. For example, every plugin includes a number of headers from the directory cinelerra but their Makefiles define no dependencies on these headers. If I modify, let's say, cinelerra/pluginpopup.h to add one more button, then execute `make' in Cinelerra's topdir, then pluginpopup.C will be rebuilt, but all the plugins only relinked, not recompiled. Then it can easily happen that the complete program works, but when run under valgrind, it reports systematically some things like doubly freed memories, illegal initializations, etc. And when working longer, Cinelerra itself can experience sporadic crashes. Then after fresh complete rebuild (preceded by removing all the object files), memory problems disappear, and valgrind becomes quite happy. To be safe - please always perform complete rebuild of the whole Cinelerra project, with explicit cleaning all object files, after modifying any single header. And do a complete rebuild, including complete cleaning in all the thirdparty directories, after modifying something inside thirdparties. Cinelerra's Makefiles themselves do not ensure adequate recompilation through dependencies. _______________________________________________________________________________ Georgy Salnikov NMR Group Novosibirsk Institute of Organic Chemistry Lavrentjeva, 9, 630090 Novosibirsk, Russia Phone +7-383-3307864 Email [email protected] _______________________________________________________________________________