24#if defined(GRK_HAVE_VALGRIND)
25#include <valgrind/memcheck.h>
35#ifdef GRK_DEBUG_SPARSE
41#if defined(GRK_HAVE_VALGRIND) && defined(GRK_DEBUG_SPARSE)
42const size_t grk_mem_ok = (size_t)-1;
44#define GRK_DEBUG_VALGRIND
46size_t grk_memcheck(
const T*
buf,
size_t len)
48 size_t val = VALGRIND_CHECK_MEM_IS_DEFINED(
buf,
len *
sizeof(T));
49 return (
val) ? (
val - (uint64_t)
buf) /
sizeof(T) : grk_mem_ok;
52bool grk_memcheck_all(
const T*
buf,
size_t len, std::string msg)
55 for(uint32_t i = 0; i <
len; ++i)
57 auto val = grk_memcheck<T>(
buf + i, 1);
60 std::ostringstream ss;
62 <<
"offset = " << i +
val;
uint8_t buf
Definition BitIO.h:84
uint32_t len
Definition Codeblock.h:38
T val[N]
Definition WaveletCommon.h:65
Copyright (C) 2016-2023 Grok Image Compression Inc.
Definition ICacheable.h:20
void GRK_ERROR(const char *fmt,...)
Definition logger.cpp:58