diff --git a/winpr/include/winpr/debug.h b/winpr/include/winpr/debug.h index c3813f920..334a57fb3 100644 --- a/winpr/include/winpr/debug.h +++ b/winpr/include/winpr/debug.h @@ -32,10 +32,15 @@ extern "C" WINPR_API void winpr_log_backtrace(const char* tag, DWORD level, DWORD size); WINPR_API void winpr_log_backtrace_ex(wLog* log, DWORD level, DWORD size); - WINPR_API void* winpr_backtrace(DWORD size); + WINPR_API void winpr_backtrace_free(void* buffer); + + WINPR_ATTR_MALLOC(winpr_backtrace_free, 1) + WINPR_API void* winpr_backtrace(DWORD size); + WINPR_ATTR_MALLOC(free, 1) WINPR_API char** winpr_backtrace_symbols(void* buffer, size_t* used); + WINPR_API void winpr_backtrace_symbols_fd(void* buffer, int fd); WINPR_API char* winpr_strerror(INT32 dw, char* dmsg, size_t size); diff --git a/winpr/libwinpr/utils/unwind/debug.h b/winpr/libwinpr/utils/unwind/debug.h index b7faf451f..25ea827c7 100644 --- a/winpr/libwinpr/utils/unwind/debug.h +++ b/winpr/libwinpr/utils/unwind/debug.h @@ -30,9 +30,11 @@ extern "C" #include #include - void* winpr_unwind_backtrace(DWORD size); void winpr_unwind_backtrace_free(void* buffer); + WINPR_ATTR_MALLOC(winpr_unwind_backtrace_free, 1) + void* winpr_unwind_backtrace(DWORD size); + WINPR_ATTR_MALLOC(free, 1) char** winpr_unwind_backtrace_symbols(void* buffer, size_t* used);