1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 01:18:19 +02:00

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.
This commit is contained in:
Christoph M. Becker
2018-09-08 13:57:01 +02:00
parent 98b01a14e3
commit 3145d6c6b9
+15 -3
View File
@@ -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