summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2003-12-22 13:08:04 +0000
committerWez Furlong <wez@php.net>2003-12-22 13:08:04 +0000
commitd756e1db2324c1f4ab6f9b52e329959ce6a02bc3 (patch)
tree0f37f5d1f50937571a278c1120c477c8a8d06739
parent85735c23c6161fadcea2edf82c17c328bdb5533f (diff)
downloadphp-git-d756e1db2324c1f4ab6f9b52e329959ce6a02bc3.tar.gz
add win32 configure option for CLI to switch on CRT heap debugging
-rw-r--r--sapi/cli/config.w324
-rw-r--r--sapi/cli/php_cli.c14
2 files changed, 18 insertions, 0 deletions
diff --git a/sapi/cli/config.w32 b/sapi/cli/config.w32
index 9f30ad6d7c..02f5f8b0fd 100644
--- a/sapi/cli/config.w32
+++ b/sapi/cli/config.w32
@@ -2,8 +2,12 @@
// $Id$
ARG_ENABLE('cli', 'Build CLI version of PHP', 'yes');
+ARG_ENABLE('crt-debug', 'Extra CRT debugging', 'no');
if (PHP_CLI == "yes") {
SAPI('cli', 'getopt.c php_cli.c', 'php.exe');
+ if (PHP_CRT_DEBUG == "yes") {
+ ADD_FLAG("CFLAGS_CLI", "/D PHP_WIN32_DEBUG_HEAP");
+ }
}
diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c
index 306e143f2c..420e355b43 100644
--- a/sapi/cli/php_cli.c
+++ b/sapi/cli/php_cli.c
@@ -537,6 +537,20 @@ int main(int argc, char *argv[])
void ***tsrm_ls;
#endif
+#if defined(PHP_WIN32) && defined(_DEBUG) && defined(PHP_WIN32_DEBUG_HEAP)
+ {
+ int tmp_flag;
+
+ _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
+ _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
+
+ tmp_flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
+ tmp_flag |= _CRTDBG_DELAY_FREE_MEM_DF;
+ tmp_flag |= _CRTDBG_LEAK_CHECK_DF;
+
+ _CrtSetDbgFlag(tmp_flag);
+ }
+#endif
#ifdef HAVE_SIGNAL_H
#if defined(SIGPIPE) && defined(SIG_IGN)