Re: SIGKILL vs SIGSEGV in Linux and Solaris

From: Måns Rullgård (mru_at_kth.se)
Date: 03/31/04


Date: Wed, 31 Mar 2004 11:23:08 +0200

Erik Max Francis <max@alcyone.com> writes:

> Eric Enright wrote:
>
>> Any hint at all would be greatly appreciated, and again I apologize
>> for
>> the vagueness of my question but I'm out of idea's, and have been
>> puzzling over this for too long.
>
> A SIGSEGV just means that an address was dereferenced that shouldn't
> have been. This probably means a dangling pointer or memory management
> corruption, or perhaps even something as obscure as buffer overruns on
> the stack (which then mangle a pointer variable).
>
> Since it's intermittent, it's probably one of these things and is only
> triggered through some fortuitous sequence of events. Can't you catch
> it in the debugger when it crashes? That will certainly narrow down
> what the likely cause is.

Even better is to run the program under a memory debugger such as
valgrind (on Linux). It will catch buffer overflows as they happen
instead of when the corrupted memory is used next time.

-- 
Måns Rullgård
mru@kth.se

Loading