From d7da76caa0881547d3605670e4e1644f92d80ea9 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 15 Dec 2001 14:09:51 +0000 Subject: [PATCH] Improvements to the malloc debugging stuff: when MALLOC_LOG is enabled, so that all mallocs and reallocs are tagged with a file name and line number, this information is now shown in the `Out of memory!' panic box. git-svn-id: svn://svn.tartarus.org/sgt/putty@1497 cda61777-01e9-0310-a592-d414129be87e --- misc.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/misc.c b/misc.c index 30731152..cb894b3e 100644 --- a/misc.c +++ b/misc.c @@ -379,8 +379,13 @@ static void *minefield_c_realloc(void *p, size_t size) #ifdef MALLOC_LOG static FILE *fp = NULL; +static char *mlog_file = NULL; +static int mlog_line = 0; + void mlog(char *file, int line) { + mlog_file = file; + mlog_line = line; if (!fp) { fp = fopen("putty_mem.log", "w"); setvbuf(fp, NULL, _IONBF, BUFSIZ); @@ -399,7 +404,14 @@ void *safemalloc(size_t size) p = malloc(size); #endif if (!p) { - MessageBox(NULL, "Out of memory!", "PuTTY Fatal Error", + char str[200]; +#ifdef MALLOC_LOG + sprintf(str, "Out of memory! (%s:%d, size=%d)", + mlog_file, mlog_line, size); +#else + strcpy(str, "Out of memory!"); +#endif + MessageBox(NULL, str, "PuTTY Fatal Error", MB_SYSTEMMODAL | MB_ICONERROR | MB_OK); exit(1); } @@ -427,7 +439,14 @@ void *saferealloc(void *ptr, size_t size) #endif } if (!p) { - MessageBox(NULL, "Out of memory!", "PuTTY Fatal Error", + char str[200]; +#ifdef MALLOC_LOG + sprintf(str, "Out of memory! (%s:%d, size=%d)", + mlog_file, mlog_line, size); +#else + strcpy(str, "Out of memory!"); +#endif + MessageBox(NULL, str, "PuTTY Fatal Error", MB_SYSTEMMODAL | MB_ICONERROR | MB_OK); exit(1); } -- 2.11.0