https://bugs.kde.org/show_bug.cgi?id=3D371916 Bug ID: 371916 Summary: execution tree xtree concept Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: wishlist Priority: NOR Component: general Assignee: jseward@acm.org Reporter: philippe.waroquiers@skynet.be Target Milestone: --- Summary: ########################### This patch implements a new "xtree" module in pub_tool_xtree.h and m_xtree.= c. This module generalises the data structure used by massif to visualise the heap usage. An xtree can be used to visualise any kind of resource or event associated to stack traces. For example, we could use an xtree to show some counts/events related to system calls, e.g. the nr of bytes read/written by read/write syscalls, ... In the current patch, it is however only used for representing heap usage. Tools that are replacing malloc/free/... can now very easily also produce a heap memory representation. massif internals has been changed to be based on this new xtree module. memcheck, helgrind and massign are now supporting a new option --xtree-memory=3Dnone|allocs|full to produce a heap usage report at the end of execution. These tools also now provides the 'xtmemory [filename]' gdbserver monitor command to produce an xtree heap usage report on demand. An xtree can be saved in 2 formats: * massif format * callgrind format Performance: ############################## Depending on the application, the massif tool is typically a few percents to 2 times faster than the 3.12 massif (e.g. perf/heap is about twice faster now). Massif also typically now uses less memory (e.g. perf/many-xpts uses now 125Mb of arena core memory instead of 205Mb). Some more detailed changes ########################## pub_tool_xtree.h, coregrind/m_xtree.h, coregrind/pub_core_xtree.h: * implementation of the generalised xtree. (this is the bulk of the change) docs/xml/manual-core.xml, docs/xml/manual-core-adv.xml: * document the new options and Execution Tree concept. coregrind/m_debuginfo/debuginfo.c: * Addition of a symbol name cache, maintained/cleared similarly to the current cfsi_m_cache. coregrind/m_deduppoolalloc.c, pub_tool_deduppoolalloc.h: * function VG_(allocStrDedupPA) specialised to create a de-duplicating pool for strings. coregrind/m_main.c, coregrind/m_options.c, coregrind/m_replacemalloc/replacemalloc_core.c, coregrind/pub_core_options.= h: * addition of the new options --xtree-memory=3Dnone|allocs|full and --xtree-memory-file=3Dfilename include/pub_tool_xarray.h, coregrind/m_xarray.c: * new function VG_(xa_str_is_member), to search a string in an xarray of strings. massif/ms_main.c: * change internal implementation so as to use the new xtree module. helgrind/hg_main.c, memcheck/mc_include.h, memcheck/mc_main.c, memcheck/mc_malloc_wrappers.c, massif/ms_main.c: * support for option --xtree-memory * support for gdbserver command xtmemory [filename] Various small changes to massif test .exp files (mostly because the --stats output has changed, due to the changed implementation). --=20 You are receiving this mail because: You are watching all bug changes.=