How can I catch segmentation fault in python?

justin justpark78 at gmail.com
Wed Nov 17 09:28:36 EST 2010


On Nov 17, 1:06 am, John Nagle <na... at animats.com> wrote:
> On 11/16/2010 10:15 PM, swapnil wrote:
>
>
>
>
>
> > On Nov 17, 10:26 am, justin<justpar... at gmail.com>  wrote:
> >> Hi all,
>
> >> I am calling a program written in C inside Python using ctypes,
> >> and it seems that sometimes the program in C crashes while it's being
> >> used in Python.
> >> Even under the circumstances, I want to get the Python program going
> >> by handling the segmentation fault.
>
> >> I've already searched the Internet, but couldn't get the right answer
> >> to catch them.
> >> Could any of you please let me know how to deal with this and catch
> >> the segmentation fault in Python?
>
> >> Thanks,
> >> Justin.
>
> > Segmentation fault isn't exactly an exception that you can catch. It
> > usually means something has gone horribly wrong, like dereferencing
> > invalid pointer, trying to access memory out of process's range. Since
> > if you run out of memory Python simply raises MemoryError exception,
> > which you can catch. So that is not the case for segmentation fault.
>
>     Either fix the program so it doesn't crash,or run the offending
> module and the C code in a subprocess.
>
>                                 John Nagle

Thanks guys for this fast replies,

Turns out that it is a fact that segmentation fault is not what I can
deal with in programming level.
But the problem is that the code is not mine, and it takes over a day
for me to get the point where the segmentation fault occurred.
Plus, it seems that the point is not deterministic

Still, I think I should at least try to figure out exactly at which
point the segmentation fault occurs, and think where to go from there
according to your kind advice.

Again many thanks,
Justin.



More information about the Python-list mailing list