Re: SIGFPE

From: Harold Gutch <logix(at)foobar.franken.de>
Date: Fri, 24 Dec 1999 11:38:24 +0100

On Wed, Dec 22, 1999 at 04:31:50PM +0100, Alexander Langer wrote:
> Huhu!
>
> Kann sich jemand erklaeren, wie folgendes zustande kommen _koennte_?
>
> Program received signal SIGFPE, Arithmetic exception.
> parseNumber (c=49, lvalp=0xbfbfed48) at lex.c:698
> 698 lvalp->fval = (double) num;
> (gdb) p num
> $6 = 1
> (gdb) p lvalp
> $7 = (YYSTYPE *) 0xbfbfed48
> (gdb) p lvalp->fval
> $8 = 3.3219280853201738
> (gdb)
>
> Die entsprechende Stelle im Source:
> if (dotSeen) {
> lvalp->fval = (double) num;
> return (FLOATING_LITERAL);
> } else {
>
> num ist:
> double num, floatExponent;
>
> lvalp ist:
> YYSTYPE *lvalp;
>
> fuer lex, aus dem .y file:
> /* definition of YYSTYPE */
> %union{
> char cval;
> double fval;
> long ival;
> char *sval;
> TreeNode node;
> }
>
> Ich hab keine Idee. Fuer mich sieht alles ok aus.
>
> Irgendwelche Ideen?

Funktioniert das ganze, wenn du ein fpsetmask(0) vor die
entsprechende Stelle im Programm setzt? Du koenntest auch mit
fpgetmask() die alte exception mask speichern und sie danach
wieder zurueck auf den urspruenglichen Wert setzen.

bye,
  Harold

-- 
<Shabby> Sleep is an abstinence syndrome wich occurs due to lack of caffein.
Wed Mar  4 04:53:33 CET 1998   #unix, ircnet
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 24 Dec 1999 - 11:38:53 CET

search this site