| config BR2_PACKAGE_HEAPTRACK |
| bool "heaptrack" |
| depends on BR2_INSTALL_LIBSTDCPP |
| depends on BR2_TOOLCHAIN_HAS_THREADS # boost, libunwind, elfutils |
| depends on BR2_USE_WCHAR # boost, elfutils |
| depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem |
| depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS # libunwind |
| depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17 filesystem |
| depends on !BR2_STATIC_LIBS # libunwind, elfutils |
| depends on !BR2_TOOLCHAIN_USES_UCLIBC # no dlmopen() support |
| select BR2_PACKAGE_BOOST |
| select BR2_PACKAGE_BOOST_IOSTREAMS |
| select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS |
| # For heaptrack_print |
| select BR2_PACKAGE_BOOST_FILESYSTEM |
| select BR2_PACKAGE_ELFUTILS |
| select BR2_PACKAGE_LIBUNWIND |
| select BR2_PACKAGE_ZLIB |
| help |
| Heaptrack traces all memory allocations and annotates these |
| events with stack traces. Dedicated analysis tools then allow |
| you to interpret the heap memory profile to find hotspots, |
| memory leaks, allocation hotspots and temporary allocations. |
| |
| Zstandard offers better (de)compression performance compared |
| with gzip/zlib, making heaptrack faster and datafiles smaller, |
| so enabling BR2_PACKAGE_ZSTD is recommended. |
| |
| https://apps.kde.org/heaptrack/ |
| |
| comment "heaptrack needs a glibc or musl toolchain w/ C++, threads, wchar, gcc >= 8, dynamic library" |
| depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS |
| depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS |
| depends on !BR2_INSTALL_LIBSTDCPP \ |
| || !BR2_TOOLCHAIN_HAS_THREADS \ |
| || !BR2_USE_WCHAR \ |
| || !BR2_TOOLCHAIN_GCC_AT_LEAST_8 \ |
| || BR2_STATIC_LIBS \ |
| || BR2_TOOLCHAIN_USES_UCLIBC |