]> git.ipfire.org Git - thirdparty/git.git/commitdiff
grep/pcre2: add GREP_PCRE2_DEBUG_MALLOC debug mode
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Thu, 18 Feb 2021 00:07:23 +0000 (01:07 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 18 Feb 2021 00:32:19 +0000 (16:32 -0800)
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>
grep.c

diff --git a/grep.c b/grep.c
index f96d86c92938b2aac4dcec8ee165f3a57064401c..7d262a23d88ec1f4beefa9f2aed1c4d93cf56ea6 100644 (file)
--- a/grep.c
+++ b/grep.c
@@ -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