From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10457 invoked by alias); 30 Oct 2002 20:17:39 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 10385 invoked from network); 30 Oct 2002 20:17:38 -0000 Received: from unknown (HELO pc2.dolda2000.com) (217.215.27.171) by sources.redhat.com with SMTP; 30 Oct 2002 20:17:38 -0000 Received: from pc7 (PC7.dolda2000.com [192.168.0.132]) by pc2.dolda2000.com (8.11.6/8.11.2) with SMTP id g9UKGJ632527; Wed, 30 Oct 2002 21:16:20 +0100 Message-ID: <006e01c28051$58125d20$8400a8c0@dolda2000.com> From: "Fredrik Tolf" To: "Daniel Jacobowitz" Cc: References: <005b01c28050$03991be0$8400a8c0@dolda2000.com> <20021030201137.GA31064@nevyn.them.org> Subject: Re: malloc() debugging Date: Wed, 30 Oct 2002 12:17:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-SW-Source: 2002-10/txt/msg00218.txt.bz2 ----- Original Message -----=20 From: "Daniel Jacobowitz" To: "Fredrik Tolf" Cc: Sent: Wednesday, October 30, 2002 9:11 PM Subject: Re: malloc() debugging > On Wed, Oct 30, 2002 at 09:07:46PM +0100, Fredrik Tolf wrote: > > I'm trying to make a multithreaded program, but I've run into some > > problems. It appears as I am somehow modifying malloc's data > > structures (those in front of the allocated chunk, I'm using glibc), > > and thus the program crashes sometimes when the malloc related are > > called, most usually in free. The strangest thing, as I see it, is > > that (at least last time it crashed from this), the first word of > > that structure (prev_size) wasn't modified, but only the second word > > (size). The most probable reason I can see for an error of this kind > > would otherwise be a buffer overflow from the chunk before. Anyhow, > > the reason that I'm mailing to this list is that I'm wondering if > > it's possible to configure gdb to break whenever one of these > > structures is modified by an instruction outside the address range of > > the malloc related functions. If noone knows how this would be done, > > could you notify of any other good tool to find these conditions? Can > > valgrind detect it? >=20 > Nope, GDB can't do this. You may want to try either Electric Fence or > dmalloc; dmalloc does work in multithreaded programs (although it needs > a little coaxing). >=20 Shouldn't gdb be enabled to do this in that case? Speaking of which, can't gdb create watchpoints to these structuress every = time malloc is called with conditions of $pc outside the malloc functions a= nd delete them when free is called? I'm not very experienced with gdb, but = shouldn't it be possible, or, if not, be made possible? > --=20 > Daniel Jacobowitz > MontaVista Software Debian GNU/Linux Developer >=20