Skip to content

Commit 0c188d5

Browse files
committed
Make TRASH_FREED_MEMORY a cmake option, similar to SAFEMALLOC
1 parent 5c93509 commit 0c188d5

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,16 @@ ELSEIF(WITH_SAFEMALLOC MATCHES "AUTO" AND NOT WIN32 AND NOT WITH_VALGRIND)
289289
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC")
290290
ENDIF()
291291

292+
# Another memory debugging feature
293+
SET(THRASH_FREED_MEMORY "AUTO" CACHE STRING "Fill freed memory with specific byte pattern. Will result in slower execution. Options are: ON OFF AUTO.")
294+
MARK_AS_ADVANCED(THRASH_FREED_MEMORY)
295+
IF(THRASH_FREED_MEMORY MATCHES "ON")
296+
ADD_DEFINITIONS( -DTHRASH_FREED_MEMORY)
297+
ELSEIF(THRASH_FREED_MEMORY MATCHES "AUTO" AND NOT WIN32 AND NOT WITH_VALGRIND AND NOT WITH_ASAN)
298+
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DTHRASH_FREED_MEMORY")
299+
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DTHRASH_FREED_MEMORY")
300+
ENDIF()
301+
292302
# Set commonly used variables
293303
IF(WIN32)
294304
SET(DEFAULT_MYSQL_HOME "C:/Program Files/MariaDB ${MYSQL_BASE_VERSION}")

include/my_valgrind.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
# define MEM_CHECK_DEFINED(a,len) ((void) 0)
4949
#endif /* HAVE_VALGRIND_MEMCHECK_H */
5050

51-
#if !defined(DBUG_OFF) || defined(TRASH_FREED_MEMORY)
51+
#if defined(TRASH_FREED_MEMORY)
5252
#define TRASH_FILL(A,B,C) do { const size_t trash_tmp= (B); MEM_UNDEFINED(A, trash_tmp); memset(A, C, trash_tmp); } while (0)
5353
#else
5454
#define TRASH_FILL(A,B,C) do { MEM_UNDEFINED((A), (B)); } while (0)

0 commit comments

Comments
 (0)