diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bf903c6..1c634807 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,7 +130,8 @@ if(MI_DEBUG_TRACE) set(MI_DEBUG_TRACE OFF) else() message(STATUS "Enable allocation trace in each heap block (MI_DEBUG_TRACE=ON)") - list(APPEND mi_defines MI_DEBUG_TRACE=1) + list(APPEND mi_defines MI_DEBUG_TRACE=1) + set(CMAKE_ENABLE_EXPORTS TRUE) endif() endif() @@ -296,6 +297,7 @@ else() endif() message(STATUS "Compiler flags : ${mi_cflags}") message(STATUS "Compiler defines : ${mi_defines}") +message(STATUS "Link libraries : ${mi_libraries}") message(STATUS "Build targets : ${mi_build_targets}") message(STATUS "") diff --git a/src/options.c b/src/options.c index a5d06ac4..d0f29593 100644 --- a/src/options.c +++ b/src/options.c @@ -395,8 +395,9 @@ void _mi_stack_trace_print(const char* msg, void** strace, size_t len, const mi_ (msg==NULL ? "block" : msg), block, avail, bsize); char** names = backtrace_symbols(strace, len); for (size_t i = 0; i < len && strace[i] != NULL; i++) { - _mi_fprintf(NULL, NULL, " %2zu: %8p: %s\n", i, strace[i], (names[i] == NULL ? "" : names[i])); - } + _mi_fprintf(NULL, NULL, " %2zu: %8p: %s\n", i, strace[i], (names == NULL || names[i] == NULL ? "" : names[i])); + } + // free(names); // avoid potential recursion and leak the trace } #else void _mi_stack_trace_capture(void** strace, size_t len, size_t skip) { diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 13bf32de..2640bbbb 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -15,6 +15,7 @@ if (NOT CMAKE_BUILD_TYPE) endif() endif() + # Import mimalloc (if installed) find_package(mimalloc 1.7 REQUIRED NO_SYSTEM_ENVIRONMENT_PATH) message(STATUS "Found mimalloc installed at: ${MIMALLOC_LIBRARY_DIR}")