* Am Mit, 01 Okt 2003 schrieb Philipp Thomas:
Christoph Maurer
[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