[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: big troubles in little libc



iain d broadfoot <ibroadfo@cis.strath.ac.uk> writes:

> 	I'm having a few problems with programs dying:
>
> liferea:0x407196c9 in free () from /lib/libc.so.6
> gaim:	0x407466c9 in free () from /lib/libc.so.6
>
> 	I can't see a bugreport about this on libc6, and it doesn't feel
> 	like the individual apps are doing anything in particular
> 	wrong...

Segfaults in free() are a fairly typical symptom of the application
screwing up memory management, actually.  freeing a block that was
never malloced, freeing a block multiple times, and writing outside of
the allocated boundaries could all cause this.  If you're up to
debugging it, electric-fence is a very useful tool; the way I use it
is generally like this:

  myprog$ ./configure
  myprog$ make CFLAGS=-g
  myprog$ gdb myprog
  (gdb) set environment LD_PRELOAD /usr/lib/libefence.so
  (gdb) run

and you'll generally get a segfault where the program actually messes
up, rather than when the symptoms are seen later.  There's a cost in
both memory and runtime, but using LD_PRELOAD inside gdb makes this a
lot less permanent.

-- 
David Maze         dmaze@debian.org      http://people.debian.org/~dmaze/
"Theoretical politics is interesting.  Politicking should be illegal."
	-- Abra Mitchell



Reply to: