Evidently this is a complex topic. I don't have the answer offhand but if you go to google, click Groups, then Advanced Groups Search, then search for "SIGFPE" in comp.os.linux.*, you'll find some informative discussion.
-- Rod http://www.sunsetsystems.com/ On Wednesday 13 March 2002 11:03, Peter Jay Salzman wrote: > hi mike, > > thanks for replying! i /just/ posted some signal test code before > getting this email, and it looks like we're getting the same results; > SIGFPE just isn't being caught. > > i can send you my ising 2-D quantum spin code, but that's not so crucial > because it's pretty obvious when stuff goes bad there. besides, i can > re-write the program less efficiently to avoid these kinds of errors. > basically, i have an average energy per site which gets incremented > quite a bit > > int spins[N][M]; > > loop (i < bignumber) { > avgEnergy = do_calculation(); > } > avgEnergy /= (N*M*bignumber); > return 0; > > and can turn this into: > > int spins[N][M]; > > loop (i < bignumber) { > avgEnergy += (do_calculation() / (N*M*bignumber); > } > return 0; > > for example, to avoid avgEnergy from getting too big (i guess i'd need > to worry about stuff getting too small?). i have a quantum simulator > which isn't nearly so simple. if you don't mind, i'll just tar that up > and send it to you. > > if you can give me some pointers on how to trap overflows or underflows > with this code, i'd be very grateful! > > thanks! > > pete > > > begin [EMAIL PROTECTED] <[EMAIL PROTECTED]> > > > On Mon, Mar 11, 2002 at 12:43:32PM -0800, Peter Jay Salzman wrote: > > > can someone post some example code of how to trap a SIGFPE signal > > > and abort execution during the course of a C program on linux? > > > > Pete, > > > > If you can provide a snip of code that invokes a FPE, then I can > > send you code to trap it. > > > > TTFN, > > Mike > > > > I wrote some stuff Monday night but nothing I tried (asside from > > kill itself) would generate a SIGFPE, I tried all the simple things > > like a = 1.4 / 0.0; > > b = 1e150 / 1e-150; > > c = 1e-150 / 1e150; > > d = 1e150 * 1e150; > > etc... > > > > (note that the compiler will warn about all of the above, so > > I actually stuck things into variables and went through a few > > steps to do the above... but no SIGFPE) _______________________________________________ vox-tech mailing list [EMAIL PROTECTED] http://lists.lugod.org/mailman/listinfo/vox-tech
