grep/pcre2: add GREP_PCRE2_DEBUG_MALLOC debug mode

Add optional printing of PCREv2 allocations to stderr for a developer
who manually changes the GREP_PCRE2_DEBUG_MALLOC definition to "1".

You need to manually change the definition in the source file similar
to the DEBUG_MAILMAP, there's no Makefile knob for this.

This will be referenced a subsequent commit, and is generally useful
to manually see what's going on with PCREv2 allocations while working
on that code.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2021-02-18 01:07:23 +01:00 committed by Junio C Hamano
parent 588e4fb191
commit a39b4003f0

10
grep.c
View file

@ -42,15 +42,25 @@ static struct grep_opt grep_defaults = {
#ifdef USE_LIBPCRE2
static pcre2_general_context *pcre2_global_context;
#define GREP_PCRE2_DEBUG_MALLOC 0
static void *pcre2_malloc(PCRE2_SIZE size, MAYBE_UNUSED void *memory_data)
{
void *pointer = malloc(size);
#if GREP_PCRE2_DEBUG_MALLOC
static int count = 1;
fprintf(stderr, "PCRE2:%p -> #%02d: alloc(%lu)\n", pointer, count++, size);
#endif
return pointer;
}
static void pcre2_free(void *pointer, MAYBE_UNUSED void *memory_data)
{
#if GREP_PCRE2_DEBUG_MALLOC
static int count = 1;
if (pointer)
fprintf(stderr, "PCRE2:%p -> #%02d: free()\n", pointer, count++);
#endif
free(pointer);
}
#endif