From: Christoph M. Becker Date: Sat, 8 Sep 2018 11:57:01 +0000 (+0200) Subject: Report mem leaks to stderr if no Win debugger is present X-Git-Tag: php-7.4.0alpha1~1980 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3145d6c6b9286c13bc84496d3f3d9853a030136a;p=php Report mem leaks to stderr if no Win debugger is present Formerly, we sent output regarding memory leaks always to the debugger on Windows, but this appears to be not useful especially for the PHPTs, which usually are not run under a debugger, and so important info will not be available there. --- diff --git a/main/main.c b/main/main.c index e4ae28d87b..c9c05dece5 100644 --- a/main/main.c +++ b/main/main.c @@ -1681,7 +1681,11 @@ static ZEND_COLD void php_message_handler_for_zend(zend_long message, const void snprintf(memory_leak_buf, 512, "Last leak repeated %lu time%s\n", leak_count, (leak_count>1?"s":"")); } # if defined(PHP_WIN32) - OutputDebugString(memory_leak_buf); + if (IsDebuggerPresent()) { + OutputDebugString(memory_leak_buf); + } else { + fprintf(stderr, "%s", memory_leak_buf); + } # else fprintf(stderr, "%s", memory_leak_buf); # endif @@ -1695,7 +1699,11 @@ static ZEND_COLD void php_message_handler_for_zend(zend_long message, const void snprintf(memory_leak_buf, 512, "=== Total %d memory leaks detected ===\n", *((uint32_t *) data)); # if defined(PHP_WIN32) - OutputDebugString(memory_leak_buf); + if (IsDebuggerPresent()) { + OutputDebugString(memory_leak_buf); + } else { + fprintf(stderr, "%s", memory_leak_buf); + } # else fprintf(stderr, "%s", memory_leak_buf); # endif @@ -1718,7 +1726,11 @@ static ZEND_COLD void php_message_handler_for_zend(zend_long message, const void snprintf(memory_leak_buf, sizeof(memory_leak_buf), "[null] Script: '%s'\n", SAFE_FILENAME(SG(request_info).path_translated)); } # if defined(PHP_WIN32) - OutputDebugString(memory_leak_buf); + if (IsDebuggerPresent()) { + OutputDebugString(memory_leak_buf); + } else { + fprintf(stderr, "%s", memory_leak_buf); + } # else fprintf(stderr, "%s", memory_leak_buf); # endif