Mailinglist Archive: opensuse-programming-de (184 mails)
| < Previous | Next > |
Re: Gleitkomma-Ausnahme
- From: Christoph Maurer <christoph-maurer@xxxxxx>
- Date: Thu, 2 Oct 2003 09:12:27 +0200
- Message-id: <20031002071227.GG4250@xxxxxxxxxxxxxxxxxxxxxxxxxx>
* Am Mit, 01 Okt 2003 schrieb Philipp Thomas:
> Christoph Maurer <christoph-maurer@xxxxxx> [1 Oct 2003 17:20:31 +0200]:
>
> >Eines meiner C++-Progrämmchen stürzt neuerdings zur Laufzeit ab und
> >schreibt "Gleitkomma-Ausnahme" auf den Schirm (SuSE 8.0. i386, gcc
> >2.95.3).
>
> Zumindest die exakte Meldung wäre nötig, wenn möglich auch die Ausgabe von
> strace. Sonst müsste man schon die Kristallkugel bemühen.
Eben, das ist die Meldung, eine Ausnahme die geworfen wird, mehr
kommt nicht.
>
> >wie man es findet?
>
> gdb?
Sicher, ist aber bei Programmen, die ne halbe Stunde (im
Terminalfenster) laufen, um an die bewusste Stelle zu kommen, sehr
nervig, da das im GDB endlos dauert, zumal die bewusste Stelle im
Code vorher ca. 20.000 mal überlaufen wird...
Na ja, cout-Debugging hat geholfen, ich habe das Problem gelöst,
verstehe aber immer noch nicht, warum die Ausnahme geworfen wurde...
Der Code sah so aus (vom Prinzip)
unsigned a, b;
[a b werden belegt]
if ( a > 0 && b/a < 2 && b%a != 0) ...
Wenn b und a beide 0 waren, wurde diese seltsame Ausnahme
geworfen...
Weder erkenne ich den Grund dafür, noch verstehe ich, was das mit
Gleitkomma-Zahlen zu tun hat.
Gruß
Christoph
--
Christoph Maurer - Tux#194235 - christoph-maurer at gmx.de
> Christoph Maurer <christoph-maurer@xxxxxx> [1 Oct 2003 17:20:31 +0200]:
>
> >Eines meiner C++-Progrämmchen stürzt neuerdings zur Laufzeit ab und
> >schreibt "Gleitkomma-Ausnahme" auf den Schirm (SuSE 8.0. i386, gcc
> >2.95.3).
>
> Zumindest die exakte Meldung wäre nötig, wenn möglich auch die Ausgabe von
> strace. Sonst müsste man schon die Kristallkugel bemühen.
Eben, das ist die Meldung, eine Ausnahme die geworfen wird, mehr
kommt nicht.
>
> >wie man es findet?
>
> gdb?
Sicher, ist aber bei Programmen, die ne halbe Stunde (im
Terminalfenster) laufen, um an die bewusste Stelle zu kommen, sehr
nervig, da das im GDB endlos dauert, zumal die bewusste Stelle im
Code vorher ca. 20.000 mal überlaufen wird...
Na ja, cout-Debugging hat geholfen, ich habe das Problem gelöst,
verstehe aber immer noch nicht, warum die Ausnahme geworfen wurde...
Der Code sah so aus (vom Prinzip)
unsigned a, b;
[a b werden belegt]
if ( a > 0 && b/a < 2 && b%a != 0) ...
Wenn b und a beide 0 waren, wurde diese seltsame Ausnahme
geworfen...
Weder erkenne ich den Grund dafür, noch verstehe ich, was das mit
Gleitkomma-Zahlen zu tun hat.
Gruß
Christoph
--
Christoph Maurer - Tux#194235 - christoph-maurer at gmx.de
| < Previous | Next > |