improve stacktrace on linux

This commit is contained in:
Daan Leijen 2021-12-10 11:42:54 -08:00
parent 28893a6c1b
commit 65b2cebcef
3 changed files with 7 additions and 3 deletions

View file

@ -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 "")

View file

@ -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 ? "<unknown>" : names[i]));
}
_mi_fprintf(NULL, NULL, " %2zu: %8p: %s\n", i, strace[i], (names == NULL || names[i] == NULL ? "<unknown>" : 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) {

View file

@ -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}")