From: Wez Furlong Date: Mon, 22 Dec 2003 13:08:04 +0000 (+0000) Subject: add win32 configure option for CLI to switch on CRT heap debugging X-Git-Tag: php_ibase_before_split~548 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d756e1db2324c1f4ab6f9b52e329959ce6a02bc3;p=php add win32 configure option for CLI to switch on CRT heap debugging --- 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)