Browse Source

msvc: add a compile-time flag to allow detailed heap debugging

MS Visual C comes with a few neat features we can use to analyze the
heap consumption (i.e. leaks, max memory, etc).

With this patch, we introduce support via the build-time flag
`USE_MSVC_CRTDBG`.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff Hostetler 6 years ago committed by Junio C Hamano
parent
commit
556702f86c
  1. 6
      compat/mingw.c
  2. 4
      config.mak.uname
  3. 9
      git-compat-util.h

6
compat/mingw.c

@ -2411,6 +2411,12 @@ int wmain(int argc, const wchar_t **wargv) @@ -2411,6 +2411,12 @@ int wmain(int argc, const wchar_t **wargv)

trace2_initialize_clock();

#ifdef _MSC_VER
#ifdef USE_MSVC_CRTDBG
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif
#endif

maybe_redirect_std_handles();

/* determine size of argv and environ conversion buffer */

4
config.mak.uname

@ -448,6 +448,10 @@ else @@ -448,6 +448,10 @@ else
endif
BASIC_CFLAGS += $(sdk_libs) $(msvc_libs)

ifneq ($(USE_MSVC_CRTDBG),)
# Optionally enable memory leak reporting.
BASIC_CFLAGS += -DUSE_MSVC_CRTDBG
endif
BASIC_CFLAGS += -DPROTECT_NTFS_DEFAULT=1
# Always give "-Zi" to the compiler and "-debug" to linker (even in
# release mode) to force a PDB to be generated (like RelWithDebInfo).

9
git-compat-util.h

@ -1,6 +1,15 @@ @@ -1,6 +1,15 @@
#ifndef GIT_COMPAT_UTIL_H
#define GIT_COMPAT_UTIL_H

#ifdef USE_MSVC_CRTDBG
/*
* For these to work they must appear very early in each
* file -- before most of the standard header files.
*/
#include <stdlib.h>
#include <crtdbg.h>
#endif

#define _FILE_OFFSET_BITS 64



Loading…
Cancel
Save