From: Charles Sandmann Newsgroups: comp.os.msdos.djgpp Subject: Re: malloc/free blues - for Peter Claessens Date: Thu, 17 Jul 2003 10:16:12 CDT Organization: Rice University, Houston, TX Lines: 21 Message-ID: <3f16bdbc.sandmann@clio.rice.edu> References: <3F156434 DOT 3000508 AT psy DOT kuleuven DOT ac DOT be> <3F16A652 DOT 24B6FEA5 AT psy DOT kuleuven DOT ac DOT be> <08da01c34c6b$be890bd0$0600000a AT broadpark DOT no> <7458-Thu17Jul2003175053+0300-eliz AT elta DOT co DOT il> NNTP-Posting-Host: clio.rice.edu X-Trace: joe.rice.edu 1058455148 11710 128.42.105.3 (17 Jul 2003 15:19:08 GMT) X-Complaints-To: abuse AT rice DOT edu NNTP-Posting-Date: Thu, 17 Jul 2003 15:19:08 +0000 (UTC) X-NewsEditor: ED-1.5.9 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com > > From: "Gisle Vanem" > > Date: Thu, 17 Jul 2003 16:00:13 +0200 > > > > #include > > int _crt0_startup_flags = _CRT0_FLAG_FILL_SBRK_MEMORY | > > _CRT0_FLAG_FILL_DEADBEEF; > > > > in the main module. > > I think this will only help if an uninitialized pointers are passed to > `free'. It is much more probable that the bug is in some code that > writes past the end of an allocated buffer; in that case, I don't > think the above will help (but it won't hurt to try that). I agree he should set the deadbeef flag even if the problem is in free, since this will make the behavior consistent between runs. For example, he might be passing an uninitialized value to free - and when you see the deadbeef (or something close) - you know you've got a bug. If the program fails in two different places when run twice, always fill the memory.